A bot for Destiny 2 that will automatically fish for you.
The bot needs to know where on your screen the "Perfect Catch" prompt appears. Here is a step-by-step guide on how to tell it that:
- Go to any fishing spot and start fishing as normal.
- When you get the "Perfect Catch" prompt, instead of reeling your lure in, press Print Screen to take a screenshot.
- Find this screenshot you just took. By default Destiny 2 saves screenshots at C:\Users\user\Documents\Destiny 2\Screenshots
- Open this screenshot, and make it take up the same amount of space on your screen that your game takes up (E.G. if your game is fullscreen, make the screenshot fullscreen).
- Open the fishing bot if you have not already. Make sure that the "Enable Binds" checkbox is checked, and the "Lock Coords" checkbox is unchecked.
- Looking at the screenshot, find the "Perfect Catch" prompt.
- Place your mouse cursor at the top left corner of the "P" in "Perfect Catch" and press the coord1 auto set key bind (Default: Open Bracket).
- Place your mouse cursor at the bottom right corner of the "h" in "Perfect Catch" and press the coord2 auto set key bind (Default: Close Bracket).
- Check the "Lock Coords" checkbox.
- Click the "Save Coords" button if you would like to save the coordinates you just gave the bot, so that you don't have to do this process again.
Now that the bot knows where to look for the "Perfect Catch" prompt, it is ready to be used. To use the bot:
- Go to any fishing spot and position yourself so that you have the "Go Fishing" prompt.
- Press the "Start" key bind (Default: Minus) to start the bot.
- When you want to stop fishing press the "Stop" key bind (Default: Equals) to start the bot.
It's as simple as that. I highly recommend also having the "Enable Anti AFK" checkbox checked (it is by default), as this will periodically move your character around to stop you from getting kicked for being AFK.
The config.properties file can be used to configure the bot, including its key bindings. If you are using the Executable Jar File, it should be located in the same folder as said Jar file. If you are running the bot's source code from an IDE or similar, you can find the file in the same folder as the src folder. Below is a list of all the properties in the config.properties file and what they all do, appropriate values for each of them, and their default values.
- forward: The key bind for your forward movement. Should be a valid key. Default: w
- start: The key bind for the "Start" button in the bot. Should be a valid key. Default: Minus
- timeout: The time, in milliseconds, it takes for the bot to automatically stop after it has not caught any fish. Should be an integer. Default: 45000
- afkinterval: The time, in milliseconds, between each instance of the bot moving your character around. Should be an integer. Default: 60000
- fishbutton: The key bind for your fishing rod in game. It should be the same as your interact bind. Should be a valid key. Default: e
- coordtwo: The key bind for setting the second coordinate for the bot. Should be a valid key. Default: Close Bracket
- significance: The percentage that the white pixels to total pixels ratio of the area of your screen being tracked by the bot has to increase in order to trigger a reel. Should be a number between 0 and 1. Default: 0.1
- white: The minimum red, green, and blue a pixel requires to be considered white. Should be an integer between 0 and 255. Default: 200
- stop: The key bind for the "Stop" button in the bot. Should be a valid key. Default: Equals
- coordone: The key bind for setting the first coordinate for the bot. Should be a valid key. Default: Open Bracket
- y1: The y of the first coordinate. Should be an integer. Default: 0
- backward: The key bind for your backward movement. Should be a valid key. Default: s
- x1: The x of the first coordinate. Should be an integer. Default: 0
- y2: The y of the second coordinate. Should be an integer. Default: 0
- interval: The time, in milliseconds, between each check of the area of your screen that the bot is tracking. Should be an integer. Default: 50
- x2: The x of the second coordinate. Should be an integer. Default: 0
- jump: The key bind for your jump. Should be a valid key. Default: Space
Please note that the bot uses jnativehook's NativeKeyEvent$getKeyText for key bindings (I'm aware this is not the best idea). If you are wondering what a "valid key" is, as referred to in the above list, below is a list of most valid keys. For the sake of brevity, in this list, whenever a key is listed to be "itself", that just means that the key's String value is the same as the key name. (E.G. F1 is itself, so F1 is "F1". The space key is itself, so it is "Space"). Note that if you use these in the config.properties file, do not include quotation marks. In the future, there will be a built-in key bind setter in the bot's GUI to avoid this tediousness.
- The Escape key is itself.
- The function keys (F1, F2, ... F12) are themselves.
- ` is "Back Quote".
- The numeric keys (1, 2, ... 0) are themselves.
- - is "Minus".
- = is "Equals".
- The Backspace key is itself.
- The Tab key is itself.
- The alphabetical keys (a, b, ... z) are themselves.
- [ is "Open Bracket".
- ] is "Close Bracket".
- \ is "Back Slash".
- ; is "Semicolon".
- ' is "Quote".
- The Enter key is itself.
- , is "Comma".
- . is "Period".
- / is "Slash".
- The space key is itself.
- The edit keys and keys above them (Print Screen, ... Pause, Insert, ... Page Down) are all their unabbreviated selves.
- The arrow keys are their directions (E.G. The up arrow key is "Up").
- The Numeric Lock key is "Num Lock".
- The modifier and control keys (Shift, Control, Alt) are themselves.