# 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 phBot 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) * ##### [GitHub](https://github.com/projecthax) --- # phBot ProjectHax Bot ### [Features](#features) ### [Download / Updating](#updating) * #### [What is the difference between stable and testing?](#updating) ### [Easy Installer](#installer) ### [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) * ##### [macOS](#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) * #### [Sockets](#sockets) * #### [Pet Return](#petreturn) * #### [Monster](#monster) * #### [Monster Preferences](#monsterpreferences) * #### [Devil's Spirit](#devilsspirit) * #### [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) * #### [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) * #### [Item](#inventoryitem) ### [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) ### [Conditions](#conditions2) ### [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 Monday night / 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 phbot.org 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 (and official vSRO 2 job / 3 job), 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. * #### macOS 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="installer"></a>Easy Installer The installer is a simple application that will download all of the necessary files to run phBot. Everything gets installed to `%LOCALAPPDATA%\Programs`. <img src="screenshots/installer.png"> 1. Stable release * Install the stable release (infrequent releases) 2. Testing release * Install the testing release (more features and what this guide is mostly based on) 3. Manager * Include the Manager which allows you to manage multiple bots at once more easily. 4. Minimap * Required for the map tab to display the minimap (includes cave maps). 5. Navmesh * Required for collision detection and auto quest to function. 6. Plugins * Plugins allow you to extend the bot with custom code. If you found a plugin you like, you will need this option in order to use it. <a href="https://phbot.org/phBot Installer.exe">Download</a> --- # <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 18.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 18.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>macOS 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. #### DisableTray Can be set to `1` to disable the tray icon. This does the same thing as the `--disabletray` command line argument. ### <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 * + Merged SilkroadR servers 3. cSRO SilkroadR (official) 4. Private Server * vSRO 1.188/1.193/1.274, thSRO, Black Rogue, ECSRO, and cSRO SilkroadR are all supported. * vSRO 2 job / 3 job servers are supported. * iSRO private servers are 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 / vSRO 2 job / iSRO 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. Switch gateway after X attempts * Change the gateway server after X failed connection attempts. 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. Language * Allows you to change the language of the bot. Some translations may not be available for your language since the bot is constantly evolving. 11. X-Trap * These options are only available for iSRO and official vSRO servers. * For iSRO, there is a randomly generated opcode that is sent on every teleport to prevent clientless. You must run a client for this otherwise you will not be able to get in game. * Server - this option requires the CrapTrap subscription. It is $1/week like the bot and has no limits. * Local - starts a local client on your own PC. * For official vSRO, X-Trap is present so you will need to run a local client to handle X-Trap packets. A client will automatically start when it receives an X-Trap packet. 12. Remote * Allows you to specify a remote IP address for CrapTrap. You may specify multiple hosts/IPs in this field separated by a comma. It is possible to use the server option and a remote server like so: "craptrap.phbot.org,X.X.X.X" 13. Return to town on login * Use a return scroll after loading into the game 14. Start bot on login * Start botting on login. This should be used with the "Relog on disconnect" feature 15. Relog on disconnect * If you disconnect from the game server, reconnect. 16. Login * After you enter your Silkroad login details, click this button to start logging into Silkroad without using the client. 17. Logout * After you get in game with clientless this button will be enabled. It allows you to logout of the game. 18. JCP * Allows you to login to iSRO with a JC Planet account. * You must check this box if you're logging into the game with your email address. 19. Client * Starts the client with clientless login. This is different from launching the client and typing in your account info. 20. Queue * Prevents multiple bots from logging into the game at one time. * Only allows one bot to connect to the server to prevent temporary IP bans on iSRO. 21. 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. HP potions <= X * Return to town when you have less than a certain amount of HP potions. 2. <= 5 MP potions left * Return when you have <= 5 MP potions in your inventory. 3. Out of universal pills * Return when you have no more Universal Pills in your inventory. 4. Out of vigors * Return when you are out of Vigor potions. 5. 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. 6. Out of speed scrolls * Return when you are out of movement speed scrolls. 7. 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. 8. Weapon durability * Returns when the weapons durability is less than 4. 9. Shield durability * Returns when the shield durability is less than 4. 10. Armor durability * Returns when any armor durability is less than 4. 11. Union Party Tickets * Return when out of union party tickets. 12. Energy of Life * Returns when out of Energy of Life items. 13. Return X minutes before the next hour * This option can be used to return for certain in game events. 14. Return every X minutes * This option can be used for Bards or Clerics that rarely return to town. 15. Return at ... every day * This option can be used to get the Genie Lamp quest every day. 16. Return/disconnect ... mnutes * This option will return to town and disconnect every set minutes. It can be used to refresh the grey bar experience a certain number of times. 17. 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. 18. Return if less than X players are in the party * Returns to town when the party does not have the set number of players. 19. Dead * Return to town when dead. 20. Not resurrected within X minute(s) * Waits for someone to resurrect you and then returns to town. 21. Return immediately if dead outside of the training area * Instead of waiting, it will return immediately if you aren't inside the training area. 22. Use resurrection scroll * Uses a resurrection scroll, if you have one, instead of returning to town. 23. Not attacked within X minute(s) * Return to town if you are not attacked by a monster within a specified amount of time. 24. Unique spawns near you * Return when a unique spawns near you. 25. Job transport dies * Use a return scroll when the job transport dies. * This is useful when doing job quests that require a transport. 26. Pink status * Return if your character has pink murder status. 27. Murder status * Disconnects if your character has murder status. 28. Change primary weapon if broken * Switches the primary weapon to the same item type if it breaks instead of returning to town on weapon durability. ### <a name="sockets"></a>Sockets Use gear socket skills. <img src="screenshots/protection_sockets.png"> ### <a name="petreturn"></a>Pet Return Pet return options. <img src="screenshots/protection_petreturn.png"> 1. Pet recovery kits * Return when out of recovery kits (fellow pet) 1. Pet revive * Return when out of pet revive items 1. Pet feed * Return when out of feed items 1. Abnormal state * Return when out of abnormal state potions for the pet 1. Transport recovery kits * Return when out of transport recovery kits (wolf pet) ### <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="devilsspirit"></a>Devil's Spirit Uses Devil's Spirit depending on the options selected. <img src="screenshots/protection_devilsspirit.png"> ### <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 at 50% EXP (SilkroadR) * SilkroadR has a bar in the game that only allows you to gain EXP for a certain amount of time. The value starts at `100%` -> `50%` -> `0%`. 8. Stop bot at 0% EXP (SilkroadR) * Similar to #7. 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. 9. 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. 10. 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. 11. 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). 12. 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. 13. Disconnect if a GM spawns * If the bot detects a GM in game, it has the ability to disconnect. 14. Disconnect if a player attacks you while botting. 15. Stop if a thief player is found in town * This is useful if you are using the auto trade feature. 16. 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. 8. Skip guild storage if a guild member is nearby * Only one person can access guild storage at a time. This option will skip guild storage if another guild member is nearby. 9. Guild sotrage enter retry * Occasionally a game bug will occur where another member is stuck in guild storage. This value is the number of times to retry when that occurs. * 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. 15. Use a reverse return scroll when you die * After completing the town loop the bot will use a reverse return to get back to your training area. * Requires that you die while the bot was started. If you restart the bot it will not use it. 16. Enable collision detection in the training area * Prevents the selection of a monster that is behind an obstacle. * Required for auto quest. * Requires you to download the navmesh data. It is linked in the release thread. 17. Navigate around obstacles * Use path finding to walk around obstacles to attack a monster. * Requires #16 to be active. 18. Equip better items * Equips better items that were picked up or are already in your inventory. * Does not replace empty gear slots with items that can be equipped. 19. Skip town script entirely * Skips doing the town script and immediately goes to the training area. 20. Use Easter Egg event NPCs * Easter Egg event spawns NPCs in the training area that can be used. 21. Use Energy of Life berserk regeneration * Uses Energy of Life items. * The berserk restoration is used based on your berserk options; otherwise just the Energy of Life item is used. 22. Use a reverse return scroll after returning to town * Same as #15 except it will also use reverse if you used a return scroll to get back to town. ### <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 X DOT * For Warlock characters. Cast X number of DOTs 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. Slower attack mode * Sends less packets when attacking/buffing/picking items. * Not actually slower. 15. 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. 16. Use teleport skills * Use `Ghost Walk` and `Teleport` skills to get to a monster faster. ### <a name="buffs"></a>Buffs <img src="screenshots/buffs.png"> You may add buffs for all weapons into this list. Weapons are automatically switched depending on the buff. 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. Emergency buff HP < X * Emergency buffs will be cast when HP is less than the set amount. 5. Emergency buff MP < X * Emergency buffs will be cast when MP is less than the set amount. 6. Cast Force Cure on bad status * Instead of using a universal/purification pulls, cast Force Cure * Chinese only 7. Cast Force Therapy on bad status * Instead of using a universal/purification pulls, cast Force Therapy * Chinese only 8. Recast all 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. <img src="screenshots/party_buff_options.png"> 1. Party buffing radius * How far to let the bot walk to buff another party member. 2. Walk back to the center after buffing * After casting a party buff, walk back to the center of the training area. 3. Buff all nearby players * Probably useless, do not use. * Buffs all nearby players with all skills even if they are not in the buff list or in the party. 4. Start/stop party buffing if player is nearby * Allows you to toggle party buffs if a player is nearby. * If the list below (#5) is empty, party buffs will continue as usual no matter which option is selected. 5. Player names for #4 ### <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 your buff lists. * Group resurrect skills are used first if there is more than one person dead in the party otherwise single resurrect skills are used. <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. 7. Resurrect try limit * After a certain number of resurrect attempts, give up on resurrecting the player. ### <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. Buff only after lure script ends * This option will skip buffing until the entire lure script has finished. * Without this option it will walk to one of your coordinates then back into the training area to buff a player. 4. Stop luring if more than X party members are dead * See below for more. 5. Stop luring if more than X party giants are in the training area * See below for more. 6. Stop luring if more than X party gians are in the training area * See below for more. 7. Stop luring if more than X monsters in the training area * See below for more. 8. X ms delay at the edges * Waits a certain amount of milliseconds outside of the training area (not the center). 9. X ms delay at the center * Waits a certain amount of milliseconds in the training area center. 10. Script * Instead of walking randomly, you can record a walk path and set it up to cast "Howling Shout" at the perfect position. 11. 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. It is possible to add the `cast` command to your lure script and have it attack a nearby monster instead of using `Howling Shout`. ### <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. Use fellow pet SP recall in town * Fellow pets have a skill that gives you SP. This option will automatically use the skill when you are in town. 6. Don't attack monsters * Enables passive mode for the pet. 7. only in town * Only summon the attack pet in town. 8. only at training area * Only summon the attack pet at the training area. 9. only if HP potions are present * Only revive the attack pet if there are potions for it available. 10. 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"> 1. Lists all players in the party 2. Show Forgotten World summons * If enabled, the bot will show a popup window with the Forgotten World summon information asking you to accept or decline. * This option does not save. ### <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". * If the list is empty it will not leave the party. 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. * If the list is empty it will not leave the party. 7. Invite other players to the party * Enables inviting other players. This should be on by default. * If this option is off the bot will only accept invites and not send invites. 8. Only accept invites at the training area * Do not accept party invitations from anyone unless you are in the training area. 9. Accept party invites from other players * Enables accepting party join invitations. * If this option is off the bot will not accept any party invitations. 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. Refuse invites from players not in the list. * If enabled, the bot will reject party invites similar to declining them in game. * If not enabled, the invites will eventually expire on their own. 12. Party type * The type is exactly the same as in the game. 13. 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. 14. 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. 6. Join by name * Join a party matching based on a player name. 7. Join by title * Join a party matching based on its title. ### <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. Taxi list * List of players currently in the taxi and their remaining time. * You can right click on their name and add more time. <img src="screenshots/party_taxi_options.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. Exchange * Message to ask the player for gold (the %0 is where the gold amount will be placed in the message) 7. Kick * Message when a player is about to be kicked for not sending the gold (the %0 is where the number of minutes will be placed in the message) 8. Delay in minutes * Delay before kicking the player from the party * This is the value for the "Kick" message ## <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 there 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. Clear button * Clears the window to free up some memory. 5. Update button * Pressing this button will update the items in your pick filter. Your settings will be saved. 6. Reset button * Resets your entire pick filter configuration. Do not click this unless you really need to.] <img src="screenshots/pickfilter_options.png"> 1. Pick items first * If multiple monsters are attacking you and an item drops, pick it up before killing the other monsters. 2. Use pick pet * Use a pick pet to pick up items intead of the character. 3. 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. 4. 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. 5. Don' pick items * Don't pick up any items regardless of what is configured in the pick filter. 6. Allow selling of all item types * Allow the bot to sell rare items. 7. Only pick rare or blue items * Only pick up rare or blue items that have dropped from a monster. 8. Only store rare or blue items 9. 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. 10. Only store items with specific blue attributes ### <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="autoquest"></a>Auto Quest Auto quest is done by enabling the quest and _not_ setting a script. 1. Enable collision detection on the `Training Area` -> `Settings` tab 1. Enable the quest 1. If the quest requires you to return to town, enable the "Return" option for the quest * Once you are in town, the bot will first look for quests that can be accepted/turned in and then the town script will follow. 1. If the quest NPC is in your training area, the bot will walk to it and turn it in if it's close enough (eg. job cave quest) **Genie Lamp** In order to turn the quest in, you must start the bot in the town of the Daily Quest Manager NPC. If you do not, the bot will skip over the quest because the NPC is not in your starting town. 1. Enable the Daily Quest * Set the quest to return when it is completed 1. Enable the Homeless Genie quest **Job Cave Quest** 1. Enable the quest 1. Start the bot in your training area ### <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. Party buffs * Cast party buffs while tracing. 15. Pick items * Pick up items while tracing. 16. Game trace * Use the in game trace mechanism instead of walking to the players coordinates ## <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. 5. Allows you to choose the type of matching. 6. Auto join matching by player name. 7. Auto join matching by title. ## <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="inventoryitem"></a>Item This tab allows you to inflate balloons during the "Balloon" event on iSRO, and it allows you to plus your Devil's/Angel's spirit item using the Awakening Enhancement scroll. <img src="screenshots/inventory_item.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 (this can be toggled). * This tab should be used when you want to stall a specific item like an armor piece or weapon. <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. * The "Quantity" field allows you to set the amount the bot should sell at one time. The bot will automatically combine then split the items so they can be stalled individually. * This tab should be used when you want to sell generic items like elixirs or global chatting 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 attempt * 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. 19. Degree * Certain private servers change the lucky powder / weapon degrees. This option allows you to manually set the weapon / lucky powder degree. It is used for all alchemy tabs. 20. Add all items * Adds all items that can be plussed to the list ### <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. Set the training area 2. Battle Arena * Register for Styria * Register for Random Flag * Register for Random Points * Register for Party Flag * Register for Party Points 3. Access storage / guild storage 4. Use a teleporter * Teleport * Designate Recall Point * Teleport to a Jupiter Room 5. Get all event quest rewards at So-Ok <img src="screenshots/map.png"> 1. General statistics. 2. 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. 3. Stop Recording * Stops recording the polygon 4. Clear * Clears the polygon data 5. Your charcter. Cave maps are supported. ### <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. 1. Unique spawned * Play a sound when any unique notice appears or a unique spawns near you. 1. Titan spawned * Play a sound when a titan monster has spawned near you. 1. Unique in range * Play a sound when a unique has spawned near you. 1. Player died * Play a sound when your character dies. 1. Attacking another player * Play a sound when your character is attacking another player. 1. Returning to town * Play a sound when your character returns to town. 1. Private message * Play a sound when you receive a private message. 1. Attacked * Play a sound when your character is attacked by another player. 1. Thief nearby * Play a sound when a thief player spawns near you. 1. Hunter nearby * Play a sound when a hunter player spawns near you. 1. Rare item drop * Play a sound when you pick up a rare item. 1. Transport died * Play a sound when your job transport dies. <img src="screenshots/sound_uniques.png"> Play a sound when a specific unique monster has spawned (based on the in game notice). ## <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="conditions2"></a>Conditions Conditions allow you to add custom functionality without the use of Python plugin; though they can be used together. These are separate from the "Training Conditions" and will execute whether the bot is started/stopped/tracing/stalling. <img src="screenshots/conditions.png"> <img src="screenshots/conditions_builder.png"> 1. Select options from the `If` dropdown and click `Add`. 1. After you've added the conditions it is now time to add `Then` options. This is what the bot will do once your conditions are met. * You may select multiple `Then` options. The order you select them in is the order they will execute. ## <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/)