Giter Club home page Giter Club logo

autofish's Introduction

GitHub package.json version GitHub license

Table of Contents ๐Ÿ“ƒ

Fishing bot ๐ŸŸ

A fishing bot for World of Warcraft, wrapped in Electron it uses keysender library to analyze the screen and automate a fishing process in a human-like manner. The bot can work with one or multiple windows of the game at the same time. The bot also uses tesseract.js for analyzing loot.

Features:

  • Multiple windows support.
  • Optional loot support.
  • Fishing lures support.
  • Custom window suppport.
  • Auto confirmation for soulbound items.
  • Missing on purpose feature.
  • Logging out/in feature.
  • Switching between red/blue feathers feature.
  • Convoluted automation (random sleep, random reaction, random sleep after catching, random mouse speed/curvature, random click on the bobber, random bobber highlighting)

For more detailed review you can watch AutoFish 1.8

This is so called "pixel bot", it doesn't change anything in the processes memory nor use any vision libraries like OpenCV, it uses a simpler solution: it analyzes the window of the game for condensed red colors and then sticks to them checking the area for changes. It moves with the bobber while the bobber slowly wobbles, but when the bobber is jerked, it clicks on it and catches the fish.

The bot doesn't work in the background and requires the window of the game to be opened all the time, to get around this you can use a virtual machine (like VirtualBox or VMware Player) with installed World of Warcraft and launch AutoFish there. (tested)

Servers tests ๐ŸŽฎ

The bot was tested on official servers:

  • Retail
  • Classic
  • WotLK Classic

Also on unofficial servers:

  • Shadowlands: firestorm-servers.com
  • MoP: stormforge.gg
  • Cataclysm: apollo-wow.com
  • WotLK: warmane.com
  • TBC: atlantiss.org
  • Vanilla: kronos-wow.com

On custom servers:

  • Turtle WoW: turtle-wow.org (use blue switch for better performance)
  • Ascension: ascension.gg - doesn't work!

Warning โš ๏ธ

If you are going to use the bot on unofficial servers, skip this section. It's very unlikely you need any of this.

Using bots in most of the games is prohibited, by doing so you should understand all the risks such an act entails: being banned, losing account, losing real money etc.

The bot is written in JavaScript, when writing the bot I didn't have acess to low-level operations like utilizing mouse, keyboard and screen. It's done by keysender, so I can't guarantee anything that comes from this particular low-level domain.

To prevent detection all the delay values were randomized: delays between clicks/pressing, sleep time (optional), reaction time (optional), after hook time (optional), the curvature and the speed of the mouse (optional), random click on the bobber, random highlighting of the bobber, the names of the processes, the names of the folder where the bot is installed are generated per install, the names of the title of the bot window are generated per launch.

Using common sense while using the bot will help to reduce risks of being banned:

  • Don't leave the bot alone for a long time.
  • Don't fish in one place all the time.
  • Try to combine gameplay between fishing: run some dungeons, chat with somebody etc.

Anyone who can see you for more than 15m on one spot might suspect something and report you, or might not. It all depends on many external factors: who, where and why. In my opinion, the biggest problem with people being banned is because they don't know how to cheat, not because of the software. So again, if you decided to step on this path: think and use common sense, no software will do this for you.

โ€ผ๏ธ Read this and use Miss on purpose and Log in/Log out options as described in that guide. You can change Sleep after hook and Random sleep options to wider random range (e.g Randomly sleep from 1 - 10 min) to make number of casts per session even more randomized. All this will decrease the efficiency but might save your account. It's up to you what's more important.

Guide ๐Ÿ“˜

The bot was tested only with default UI and with default UI scale, without any addons whatsoever. So turn off all the addons and set UI scale to default before using the bot.

  1. Launch the game (not as administrator).
  2. โ— โ— โ— Switch to the DirectX 11 on Retail/Classic (skip for unofficial servers).
  3. Switch to Window or Window(maximized) mode (skip for Retail/Classic, fullscreen there already works as maximized).
  4. Are you using whitelist?
    • Yes: Turn off Auto Loot, set UI scale to default, turn on Open loot window at mouse.
    • No: Turn on Auto Loot
  5. Assign your 'fishing' and 'lures' keys in the game and write them in the respective sections in the UI of the bot.
  6. Equip a fishpole.
  7. Find a good place to fish (check Fishing zone section).
    • Avoid any red/blue colors in the "Fishing zone" except the red/blue feather of the bobber.
    • Initially the bot will make a preliminary check for red/blue colors before casting, if it finds any, it will stop working: change your Fizhing Zone or increase Threshold or change the place.
    • The bot will make 5 attempts to cast and find the bobber (you can change this number in the "Advanced Settings"). If it fails, it will stop the application.
  8. The bot doesn't work in the background, so don't use your keyboard and mouse while the bot is working.
  9. You can press 'space' to stop the bot.

Known issues ๐Ÿ”ด

  • If the bot can't find the bobber, decrease "Threshold" value (and be sure you are on DirectX 11).
  • If the bot still can't find the bobber, it might be because the bobber appears too slowly and the bot should wait longer before looking for it: increase Cast animation delay option in the Advanced Settings.
  • If the bot can't pass the preliminary checks for red colors, tweak your Fishing Zone by pressing Set Fishing Zone button or increase "Threshold" value.

Fishing Zone ๐ŸŽฏ

Fishing zone is a resizable and movable area in the water where your bobber might land. The bot looks for the bobber only in this area.

You can change the dimensions of this zone by clicking on "Set Fishing Zone" button. The application will open the window with your game and you can resize and move it as you like.

The rule of thumb here is the better you can see the red/blue feather the better the bot will see it too:

  • If you can, make your video settings as best as possible, except the weather effects...
  • Turn off all the weather effects so that the bot won't confuse rain/fog for jerking of the bobber. But if the weather is really bad (like a blizzard), it might drastically reduce the efficiency of the bot (working on make it better). Solution: find another place, switch between blue/red feathers or wait for the better weather.
  • Different direction might make the red feather of the bobber either brighter or darker, bigger or smaller, this all will impact the efficiency of the bot. In most cases the place doesn't matter it's all about direction and position.
  • Camera position isn't so important, but sometimes, if the place is dark/snowy, closer view to the bobber might help. The best position is just a normal 3rd person view.
  • Tweak gamma/brightness/contrast settings to make the bobber brighter and more colorful.
  • For very dark zones you can try other bobbers that have distinct red/blue colors on them instead of the default one.

Watch AutoFish 1.0 for video explanation.

Here are quick self-explanatory "good-bad" screenshots of the bobber:

Soulbound items auto-confirmation ๐Ÿ”ท

If you want the bot to confirm rare Soulbound items, turn on Loot all Uncommon and Rare items option. If the item requires confirmation on looting, the bot will confirm it automatically. This won't work with AutoLoot turned on, so if you need such items always use whitelist. This feature also doesn't work with any other language except English. As a solution (both if you need AutoLoot on and if your WoW isn't in English) use AutoLooter instead.

Additional info ๐Ÿ“Œ

  • If you play on Classic/Vanilla and want to use lures, use a macro that will apply the lures automatically onto your fishpole and assign that macro to Lures Key section:

Classic:

/equip *your fishing pole name*
/use *your lures name*
/use 16

Vanilla:

/script UseAction(*your lures key*);
/script PickupInventoryItem(16);
/script ReplaceEnchant();
  • You can turn off all the "sleeping" and random values to make the bot work 2-3 times faster.
  • If you use whitelist feature in different from English languages for the first time, wait until the bot downloads the data for your language.
  • Don't fish near other players, the bot might confuse their bobber for yours.
  • Whitelist works properly only with standard 16:9 resolutions (if you use ultrawide monitor, switch to 16:9 windowed mode)
  • If the bot often misses the "jerking" of the bobber and does nothing, as a solution you might need to make your camera more horizontal, so that the bot "sees" the "jerking" animation better:

Download ๐Ÿ“‚

Buy Me a Coffee at ko-fi.com

AutoFish 1.11.0 Setup: Download

It's open-source software, so if you are afraid of downloading the executable file, you can clone the repository, check the code and lanch it from the CLI.

The executable file is a squirrel setup, it will install the bot into a folder under a random name and create a shortcut with a random name on your desktop.

You can uninstall it in the Windows Settings, the name of the uninstall will be the same name as the name of the shortcut.

If you downloaded a new setup, you need to uninstall the previous AutoFish first, because the random names of the application and the folder are generated per install, so it won't automatically re-install a new application in the folder of the previous.

Installation ๐Ÿ”จ

If you want to tweak the app and make some changes you need to:

Install npm and dependencies:

install npm
npm install

To distribute by electron-forge:

npm run make

To start the app from the CLI:

npm start

autofish's People

Contributors

jsbots avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.