A tool for automatic fishing in Destiny 2. Inspired by D2SemiAutoFisher.
- Predefined configurations for 1980x1080 screen resolutions,
English and Russian localizations with
E
as interaction button. - An opportunity to add configuration for your own resolution, localization and interaction key.
- Customizable fish limit to prevent fish left on the surface from disappearing.
- Anti-AFK system to prevent being kicked from the game during long fishing sessions. The system continues to run even if the player stops fishing or dies.
At August 19th, 2024, Bungie stated that using automated tools to get XP, material or loot is against Terms of Service.
Use this automatic fishing tool for your own risk.
Important: This tool does not have any malware or spyware. The executable is created via PyInstaller; it can add code and libraries for which I am not responsible.
- Open the latest release.
- Download
destiny2autofishing.zip
from Assets. - Unpack this archive to any empty directory.
- Install Python 3.11.4 or higher version of Python 3.11.
- Open PowerShell.
- Run
pip install -U https://github.com/Prometheus3375/destiny2-auto-fishing/archive/latest.zip
to install the latest version of the script.
While the tool is running you can freely change keyboard layout, but you are forced to use English (USA) before its start.
- Open directory where you have unpacked the archive, in Explorer.
- Click on the address bar, erase everything there, type
powershell
and press Enter.- Alternatively, you can click
File -> Run Windows PowerShell -> Run Windows PowerShell
.
- Alternatively, you can click
- Switch your keyboard layout to English (USA).
- Run
.\destiny2autofishing.exe 'path-to-configuration-file'
to start the script using configuration from a file located atpath-to-configuration-file
.- There are some predefined configurations located inside
config
directory. - For more information and parameters run
.\destiny2autofishing.exe --help
.
- There are some predefined configurations located inside
- Open PowerShell.
- Switch your keyboard layout to English (USA).
- Start the script:
- Run
python -m destiny2autofishing -p 1920x1080-E-english
to start the script using predefined configuration for screen with resolution 1920x1080 and Destiny 2 withE
as interaction key and English localization.- Run
python -m destiny2autofishing --help
to view all available predefined configurations. - If you have not found your resolution/key/localization in the list of available,
refer to section
Making custom configuration file
below.
- Run
- Run
python -m destiny2autofishing -c 'path-to-configuration-file'
to start the script using configuration from a file located atpath-to-configuration-file
.
- Run
- Use ⬆ and ⬇ keys to search for history of commands.
- If you have copied a command, you can paste it in single click of right mouse button.
- Press
Ctrl+C
to terminate any executing command.
- Hold Shift and press right mouse button on a file/directory and select
Copy as path
to copy absolute path to this file/directory.
The tool can be terminated by pressing Enter
after it is fully started.
A usual case for creating a custom configuration file is the absense of predefined configuration for your screen resolution, interaction key or localization. Complete guidelines for creating a custom configuration file are written here.
This system performs anti-AFK actions almost every 2 minutes, each time after casting the fishing rod. A cast has long animation; therefore, anti-AFK actions do not interrupt fish catching and other actions made by the script.
If for some reason the fishing rod was not cast by the script for 2.5 minutes, then the system starts to perform anti-AFK actions every 2 minutes, without waiting for rod casts, until the script makes a cast or the script is terminated.
Note: the script cannot resume fishing, this must be done manually. Anti-AFK cannot track whether fishing is manually resumed, and after manual resuming it will continue to consider that the rod was cast a long time ago performing anti-AFK action according to the schedule. Restart the script to prevent fish catch failure due to the system.
The current anti-AFK actions are the following:
- Press
F1
. - Wait 1 second.
- Press
D
. - Wait 1 second.
- Press
F1
.
To check if these actions indeed prevent kicking to orbit, I made a small script to perform these actions every minute, loaded into EDZ and left the script and the game running while I was sleeping. After I woke up, my character was still in EDZ. Later, I got the same results with the whole fishing script on Nessus with the period in 2 minutes.
- Install Python 3.11.4 or higher version of Python 3.11.
- Clone this project.
- Open terminal and change current working directory to the root of this repository.
- Initialize virtual environment inside
.venv
directory and activate it according to the tutorial. - Run
python -m pip install -U pip setuptools wheel build pyinstaller==5.13.0
to install building tools. - Run
python -m pip install -r requirements.txt
to install dependencies.
- Increase version in
destiny2autofishing/__init__.py
according to the specification and commit changes. - List all changes made in
changelog.md
and commit changes. - Run
build.ps1
file. - Create new release attaching
.whl
and.zip
files created inside.dist
directory.