Skip to content
forked from jsbots/AutoFish

An easy-to-use fishing bot for official and unofficial World of Warcraft servers.

License

Notifications You must be signed in to change notification settings

Frank9932/AutoFish

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub package.json version GitHub license

Table of Contents 📃

AutoFish Premium:

Fishing bot 🐟

A fishing bot for World of Warcraft, wrapped in Electron it uses keysender and nut.js libraries 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:

  • Fishing lures support.
  • Loot filtering support.
  • Auto confirmation of soulbound items.
  • Miss on purpose feature.
  • Random Log out/log in 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.12

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.

Servers tests 🎮

The bot was tested on official servers:

  • Retail
  • Classic
  • WotLK Classic

Also on unofficial servers:

  • Legion
  • MoP
  • Cataclysm
  • WotLK
    • Ascension (use custom window option and choose Ascension window. Launch the bot as admin)
  • TBC
  • Vanilla
    • Turtle WoW (use separate Turtle WoW config, sound detection gives best performance there)

Disclaimer ⚠️

This project was made only for educational purpuses to explore the possibility of making a fully workable bot written in JavaScript.

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.

Use this software at your own risk. No one will be responsible for any consequences except yourself. The software is in no way "undetectable" and never was made with such intentions so I don't guarantee anything related to the bot and it's provided as is.

Guide 📘

  1. Launch the game.
  2. Are you using Filter feature?
    • Yes: Turn off Auto Loot in the game, set UI scale in the game to default, turn on Open loot window at mouse in the game.
    • No: Turn on Auto Loot in the game.
  3. Assign your 'fishing' and 'lures' keys in the game and assign the same keys for the bot.
  4. Find a place to fish.
  5. Set your Fishing Zone by pressing Set Fishing Zone button. Resize and reposition Fishing Zone so that there's no reddish/bluish (depends on what switch you chose) elements in the that zone. Remember, Fishing Zone is an overlay window, so the colors of your character and UI (Texts, healthbars and so on) will be recognized by the bot too.
  6. Press Start button and don't use your mouse and keyboard (use the bot on VM if you need it to work in the background).
  7. To stop the bot press your stop key (default: space).
  8. Are you getting an error?

Yes, it says: Found red/blue colors before casting. Change your Fishing Zone or increase the Threshold value or change the fishing place.

Reposition or resize your Fishing Zone to avoid any reddish or bluish elements, if you are sure there's none, then you need to either increase Threshold or switch to the other color.

No, but the bot recasts all the time and can't find the bobber. (as says in the log)

Then you seem to overdid a little bit with Threshold value, decrease it, if this gets you back to "found red/blue colors" error, then there's something wrong with the size/position of your Fishing Zone.

No, but the bot clicks too early before fish is even hooked.

There's a couple solutions to this. First, try from the 1st person view, if that didn't help, then go to the *Advanced Settings and increase either Bobber Sensitivity (turn of Auto adjust Sensitivity and Density option) or Bobber Density (especially if it's not Dragonflight) values (You will find them in Critical section).

No, the bot finds the bobber (as says in the log) but it doesn't react to the bobber being hooked.

Then you do the opposite to the previous issue: go to the Advanced Settings and decrease either Bobber Sensitivity (especially if it's Dragonflight) or Bobber Density (especially if it's not Dragonflight) values (You will find them in Critical section). If it's Turtle WoW then decrease Splash Color value.

Hints and Issues

  • 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. Especially this is related to all fishing addons like Fishing Buddy and others, if you use any of them, turn off all the UI features they have.
  • Initially the bot will make a preliminary check for red/blue colors before casting, if it finds any, it will stop working.
  • The bot will make 5 attempts to cast and find the bobber (default: 5). If it fails, it will stop the application.
  • If you use Filter feature in different from English languages for the first time, wait until the bot downloads the data for your language. Also read about Soulbound items.
  • If the bot doesn't move/press/clicks your mouse, try to launch it as administrator. (especially if you use it on private servers)
  • Filter works properly only with 16:9 resolutions right now: 1366x768 or 1920x1080 or 3840x2160
  • Don't fish near other players, the bot might confuse their bobber for yours.
  • If you use many monitors the game should be on the primary one.
  • Sound Detection feature might not work with some audio devices, in that case you need to switch to another device (e.g. you are using headphones and sound detection doesn't work, then plug in speakers and test again).
  • The bot might not work properly if you have latency issues.
  • You can turn off all the "sleeping" and random values to make the bot work 2-3 times faster.
  • If you want to use the bot with multiple windows don't forget to switch the game to DirectX 11.
  • Supported keys for the bot (except num's and Fs)
  • If Lunkers bother you in Dragonflight, you might need to turn off sleeping or decrease it to around 0.5 - 5 seconds.

Threshold 🔴

Since 2.0.0 Threshold value is obsolete and available only in Manual mode

Threshold value is an RGB value of a red or blue color, depends on what switch you use, that represent a color threshold below which the bot will ignore all the respected colors.

For example if I use red switch and my threshold is 60, the bot will ignore all the colors below this value, by doing so it will see only the reddest parts of the screen and that's what we need: a red feather on the bobber. So the higher the threshold, the less red colors the bot will recognize and the other way around: the lower is the threshold the more red colors on the screen the bot will recognize.

Found red/blue colors before casting. Change your Fishing Zone or increase the Threshold value or change the fishing place.

With this error the bot will highlight the area where it ran into the same colors as your threshold value. Tweak the Fishing Zone or change your fishing place. If the error happens because of some reddish water, use the blue switch or increase Threshold value.

Have tried n attempts to find the bobber and failed: decrease the red color "threshold" value or change the fishing place.

If you see this error, it means you need to decrease threshold or change the direction/position of your fishing place to make the bobber brighter.

Dynamic Threshold

It's simple, the bot will decrease threshold by the provided value (default: 5) after n number of failed attempts to find the bobber (default: 5) and will try to make another n attempts to find the bobber decreasing it until it reaches Threshold < 20. This option is good to make the bot keep working even during the bad weather when the color/brightness of the bobber is drastically decreased.

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.

Fishing Zone is an overlay window, so the colors of your character and UI will be recognized by the bot too.

Fishing Zone has "Check" button to help you understand whether there's any red/blue colors of the provided threshold value in the Fishing Zone before casting a bobber. It fully depends on Threshold value, so again, if after pressing Check button the window changes to red color - close the window, slowly increase Threshold and test again. Repeat until the window changes to green.

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. 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.12 for video explanation.

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

Applying Lures 📌

For Dragonflight and Classic/Vanilla you need to use a macro that will apply the lures onto your fishpole and assign that macro to Lures Key option:

Dragonflight:

/use *lure_name*
/use *fishpole_name*

Classic:

/equip *fishpole_name*
/use *lure_name*
/use 16

Vanilla:

/script UseAction(*your lures key*);
/script PickupInventoryItem(16);
/script ReplaceEnchant();

Interactive key

In Dragonflight You can use interactive key to catch your fish, if you want to use it with the bot, turn on Int. Key option and assign the same key you use for interactive key in the game.

To make the interactive key work, you use this commands (write them in the chat and press enter, one by one):

/console SoftTargetInteractArc 2  - This will allow you to interact with the bobber no matter which way you are facing.
/console SoftTargetInteractRange 30  - This increases the interaction range to 30 yards. Adjust to your needs

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.

AutoFish Premium :crown:

Premium Features:

  • You support the project! (main feature)
  • Remote control via Telegram.
  • Control with Arduino Board (complete hardware emulation).
  • Multiple game windows support (up to 4).
  • Sound Detection.
  • Mammoth Selling (junk selling).
  • Profiles support.
  • AFK Fishing Mode (auto-focusing the window only when catching/casting).

Arduino Control 🕹️

This feature is available only for Premium version of the app

Watch Arduino Control Test Video

The bot is able to connect to your Arduino Board and use it to emulate a mouse/keyboard device, it will look like a real keyboard or mouse to the OS and the game. What you need to do to make it possible:

  1. Get an Arduino with an ATmega32U4 on board (any cheap copies for 2-3$ will do too, you can find them on Chinese online markets).
  2. Connect it to your computer.
  3. Install Arduino IDE.
  4. Click New Sketch and replace everything there with this sketch: Arduino Sketch.
  5. Click Tools -> Port and choose the port your Arduino Board connected to.
  6. Click Sketch -> Upload and wait until the code uploads to your board.
  7. Launch AutoFish, click Advanced Settings turn on Use Arduino Board option and choose the port your Arduino Board connected to, press Connect button.

Telegram remote control 📱

This feature is available only for Premium version of the app

Watch Telegram remote control Test Video

  1. Get the token from BotFather by using /newbot command and following the instruction. Imagine some long and random name for the bot so that someone won't accidentally join your bot and gain control over your fishing process.
  2. Paste the token to Telegram token input field in Remote Control section in the Advanced Settings and press enter.

  1. Press Connect button and wait until the name of the button changes to either done or *error (might take awhile).
  2. Open the bot in your Telegram and either press /start or write /start command.
  3. If evertyhing is OK, the bot will reply with:

  1. Now set your Chat Zone as on the screenshot below by pressing Set Chat Zone button on the main window of the AutoFish.

  1. If you want to make the bot notify you about any errors or whipser messeges, you need to start it from Telegram (not by pressing Start on the bot's interface). Whisper detection will work much better and reliable if you turn off all the other chat messages.

Multiple Windows 🚀

This feature is available only for Premium version of the app

Watch Multiple Windows Test Video

Multiple Windows feature allows you to fish in multiple windows (up to 4) at the same time. The bot will switch between the windows of the game when it needs to cast/catch fish in one of them.

Watch this if you wonder how it looks like.

Sound Detection 🔊

This feature is available only for Premium version of the app

Watch Sound Detection Test Video

Sound Detection is an alternative to pixel recognition logic. The bot will hook the bobber only after "splash" sound and won't rely on checking the animation of the bobber plunging.

With both Int. Key and Sound Detection turned on you can be completely independent from Threshold and Fishing Zone options. If you don't use Int. key or the game doesn't support it, the bot still needs to find a bobber first but checking will be done by sound recognition if you turn on Sound Detection option.

Before using sound detection turn off Music and Ambient Sounds in the game, leave only Sound Effects. Your volume should be at normal/default level. Try to find a place secluded from the sounds made by other players to avoid false detections.

You can also use AFK Fishing Mode in DX12 now, with Int.Key + Sound Detection the bot will focus the window only when it needs to cast and when it detects splash sound (turn on Sound in Background for that).

Warning! Sound Detection feature might not work with some audio devices, in that case you need to switch to another device (e.g. you are using headphones and sound detection doesn't work, then plug in speakers and test again).

Mammoth Selling 🐘

This feature is available only for Premium version of the app

Watch Mammoth Selling Test Video

As an alternative to filtering you can use a trader on your mammoth mount to sell all the junk items during the fishing. The bot will summon your mount, target your trader, interact with it by using interaction key in the game, unsummon the mount and go on fishing.

Because of the novelty of the interaction key this feature is available only for Dragonflight.

Depends on the mount the name of your trader might be different, so change the default value.

Random Camera/Character Movements 🤖

This feature is available only for Premium version of the app

Watch Random Camera/Character Movements Test Video

The bot will randomly move and change your camera view from time to time within the given value. It will also balance itself every n minutes (default: 5) and return to the initial camera and character position.

AFK Fishing 😴

This feature is available only for Premium version of the app

Watch AFK Fishing Test Video

Because the bot can't work in the background and requires a little bit difficult configuration for VM, AFK Fishing mode might help you if you have only one monitor. This mode make the bot focus the window of the game only when it needs to cast and catch the fish, after that it will switch back to the previous window by using alt + tab keys. It allows you to watch video/surf the internet/read a book while the bot is checking the bobber in the background. This mode works only with DirectX11.

Download 📂

AutoFish 2.0.0 beta Public: Download

AutoFish 2.0.0 beta Premium: 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 launch it from the CLI.

The executable file is a setup, it will install the bot into c:/users/your_user/App Data/Local/random_folder/ 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.

About

An easy-to-use fishing bot for official and unofficial World of Warcraft servers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.3%
  • CSS 9.6%
  • HTML 1.1%