How to set up the bot
The bot ships already configured, so you do not have to change anything to get started. This page is for those who want to fit it to their tackle and water: what each important option does, its default, when to change it and where people usually go wrong.
Where the settings live
All settings are stored in the config.yaml file in the program folder. You can open it with plain Notepad. Some parameters are also available in the launcher window; the rest are edited in the file.
An entry looks like this: CAST_DELAY: 6.0. Change only the value after the colon. Text after # is a comment and is ignored. Changes take effect the next time the bot starts.
The file is split into sections. The general ones (keys, character stats, bot behaviour, drag, keepnet, notifications) apply to every mode. The PROFILE section holds the tackle profiles: float, spinning, bottom, trolling. The values below come from the file that ships with the program.
- Copy
config.yamlunder another name before editing. - Change one option at a time and test a few casts.
- Do not send the whole file to strangers: it contains your mail password and tokens.
General settings
They apply to every fishing mode.
Keys (KEY)
These keys must match your control settings in the game.
| Option | Default | What it does and when to change it |
|---|---|---|
TEA / CARROT | -1 | Keys for tea and carrot. “-1” means “take it from the game’s quick menu (T)”. If you put the items on dedicated keys, enter them here. |
BOTTOM_RODS | [1, 2, 3] | Keys of the bottom rods, in order. The bot can use as many rods as there are keys in the list. |
MAIN_ROD | 1 | Key of the main rod. The bot switches back to it, for example after collecting bait. |
COFFEE / ALCOHOL / DIGGING_TOOL | 4 / 6 / 5 | Keys for coffee, the drink item and the shovel (scoop). |
SPOD_ROD | 7 | Key of the spod rod used for baiting the spot. |
NEXT_TICKET | "l" | Key for choosing the next boat ticket, as shown in the game’s key list. |
PAUSE | "[" | Pause and resume. Stopping is Ctrl+C (the QUIT option). |
Character stats (STAT)
The bot watches energy, hunger and comfort and eats or drinks at the right moment.
| Option | Default | What it does and when to change it |
|---|---|---|
ENERGY_THRESHOLD | 0.74 | Energy level (0 to 1) below which the bot drinks coffee. A higher value means it drinks sooner. |
HUNGER_THRESHOLD | 0.5 | Hunger level at which the bot eats a carrot. |
COMFORT_THRESHOLD | 0.51 | Comfort level at which the bot drinks tea. |
TEA_DRINK_DELAY | 300 | Minimum pause between teas, seconds. |
COFFEE_DRINK_DELAY / COFFEE_LIMIT | 32 / 32 | Pause between coffees in seconds, and the maximum coffees per fish fight. |
ALCOHOL_DRINK_DELAY | 900 | Pause between drinks, seconds. |
Bot behaviour (BOT)
| Option | Default | What it does and when to change it |
|---|---|---|
SNAG_DETECTION | true | The bot notices a snag instead of reeling in vain. Turn it off only if it triggers for no reason. |
SPOOLING_DETECTION | true | The bot notices when the line is fully spooled out and reacts accordingly. |
SPOOL_CONFIDENCE | 0.93 | Strictness of spool detection (0–1). Lower is more sensitive, but also more false alarms. |
RANDOM_CAST_PROBABILITY | 0.06 | Chance of a random cast with another rod when fishing with several rods. 0 turns it off. |
JITTER_SCALE | 0.2 | Spread of pauses: every delay varies by ±20%, so actions are not perfectly uniform. 0 means no spread. |
CATCH_SCREEN_STYLE | "simple" | Look of the catch screen in the game. If yours is “animated”, set that value: the bot will wait 10 seconds for the animation to end. |
SPOD_ROD_RECAST_DELAY | 1800 | How often to recast the spod rod, seconds (applies when baiting is enabled). |
LURE_CHANGE_DELAY | 1800 | How often to change the lure, seconds (applies when lure changing is enabled). |
PAUSE_DELAY / PAUSE_DURATION | 1800 / 600 | How many seconds pass before the bot takes a break and how long the break lasts (applies when breaks are enabled). |
WHEEL_BY_FILL | true | The end of reeling is detected by the fill of the reel ring. More reliable, but only with HDR turned off in the game. With HDR on, set false. |
WHEEL_RING_MAX_GAP | 0.036 | At which ring gap the line counts as reeled in: 0.044 is about 5 m, 0.036 about 4 m, 0.025 about 3 m. A smaller value lifts the rod later. |
Bottom rod placement (BOT.ROD_PLACEMENT)
| Option | Default | What it does and when to change it |
|---|---|---|
ROD_PLACEMENT.ENABLED | true | The bot casts the bottom rods and puts them on the stands itself. Set false if you place them by hand. |
STEP_SECONDS / MAX_TRIES | 0.15 / 3 | Length of a sidestep and the number of retries when the game refuses to place the rod (red banner). |
STEPS / SHIFT_BEFORE_CAST | [s,d,d] / ["",d,d] | Which sidestep to make for rod 1, 2 and 3: s back, d right. Change them if on your spot the rods collide with the bank or each other. |
Drag (BOT.FRICTION_BRAKE)
The bot adjusts the drag itself by the tension bar: it adds drag while the fish is not pulling and reduces it on overload. The reel has 30 divisions.
| Option | Default | What it does and when to change it |
|---|---|---|
INITIAL | 22 | Drag setting (out of 30) the bot returns to before each cast. Must not exceed MAX. |
MAX | 25 | The bot never raises the drag above this. Keep a safety margin for your line strength. |
SENSITIVITY | "high" | When the bot starts lowering the drag: very_high from 70% of the tension bar, high from 80%, medium from 90%, low from 95%. Line breaks: go higher. Too many drag reductions: go lower. |
INCREASE_STEP / DECREASE_STEP | 1 / 1 | How many divisions to add or remove at a time. |
INCREASE_DELAY | 2.0 | How many seconds the bar must stay in the yellow zone before the bot adds drag. |
GREEN_INCREASE | false | Also add drag in the green zone. Turn on for fish that never pull the bar to yellow. |
START_DELAY | 2.0 | Pause after a bite before the regulator starts working. |
LIMIT_RELAX_DELAY | 10.0 | After a reduction the bot will not go above the value where it reduced; the ceiling rises by 1 every N seconds without overload. |
Fish fight (BOT.PULL)
| Option | Default | What it does and when to change it |
|---|---|---|
ENABLE_TENSION_FALLBACK | true | Decide by the tension bar. false uses only the old PULL_FALLBACK_DELAY timer (20 s). The timer is also used automatically if the bar is unavailable (non-standard window size). |
LOW_TENSION_DELAY | 12.0 | How many seconds a fish stays on with an almost empty bar before the bot lifts the rod. Fights usually last 7–20 s, so 5–8 s would lift the rod earlier than usual. |
SNAG_BY_TENSION / SNAG_LOG_ONLY | true / true | Snag detection by a red bar with no fish. By default the bot only writes it to the log and keeps going. Watch the log first, then you may set SNAG_LOG_ONLY: false. |
EMERGENCY_DELAY | 180.0 | Emergency fight timeout, seconds. 0 turns it off. |
NET_AFTER_FINISH_DELAY | 0.6 | How many seconds to lift the rod after reeling ends before taking out the net. Fish escape before the net: lower it. Net comes out too early: raise it. For heavy fish on bottom rods use 1–2 s. |
Keepnet (BOT.KEEPNET)
| Option | Default | What it does and when to change it |
|---|---|---|
CAPACITY | 100 | Keepnet capacity. Enter your own. |
KEEP_TAGS | green, yellow, blue, purple, pink | Which tags make a fish go into the keepnet (when selective keeping is enabled). |
BYPASS_TAGS | yellow, blue | Fish with these tags are always kept, even if the species is blacklisted. |
WHITELIST / BLACKLIST | 6 species / empty | Species that are always kept, and species that are not kept without a suitable tag. |
SCREENSHOT_EVENTS / SCREENSHOT_TAGS | fish, card, gift / yellow, blue | When to take a catch screenshot. An empty tag list means every fish. |
Notifications (BOT.NOTIFICATION)
When it stops, the bot can write to you by email, Telegram or Discord. Turn it on in the launcher and enter the access details here.
| Option | Default | What it does and when to change it |
|---|---|---|
EMAIL / PASSWORD / SMTP_SERVER | — | Recipient address, password and sending server. Gmail and many other providers need an “app password”, not your normal password. |
TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID | empty / -1 | Token of your Telegram bot (created with @BotFather) and your chat number. |
DISCORD_WEBHOOK_URL / MIAO_CODE | empty | Discord webhook URL and Miaotixing code. |
Tackle profiles
A profile is a set of values for one kind of tackle. You choose it in the launcher. The ready “spot” profiles (for example “Match | still water | c10”) are the same parameters already tuned for a particular place and rod, which makes them handy templates.
Options shared by the profiles
| Option | Default | What it does and when to change it |
|---|---|---|
CAST_POWER_LEVEL | 5.0 | Cast power from 1 (weak) to 5 (maximum). 3 is about half. Lower it for a near spot. |
CAST_DELAY | 4–8 | How many seconds to wait for the rig to land and sink. If the bot starts too early, raise it. |
LIFT_TIMEOUT | 16.0 | How many seconds to try lifting the fish before putting the rod down and trying again. |
POST_ACCELERATION | varies | Whether to hold Shift (fast reeling) during the fight. |
Float fishing
Profiles TELESCOPIC (telescopic rod, still water), BOLOGNESE and MATCH (bolognese and match rods, flowing water). The bot watches the float by image.
Values: telescopic / bolognese and match (the ready still-water and flowing-water profiles differ).
| Option | Default | What it does and when to change it |
|---|---|---|
FLOAT_SENSITIVITY | 0.67 / 0.75 | How closely the float image must match the reference (0–1). Lower reacts to weaker movement but strikes in vain more often. Higher is stricter, but you may miss a bite. First number is for the telescopic rod, second for bolognese and match. |
CHECK_DELAY | 0.2 / 0.5 | How often the bot looks at the float, seconds. |
LIFT_DELAY | 1.3 / 2.5 | Pause between the float changing position and the strike. Fish come off: lower it. Strike too early: raise it. |
DRIFT_TIMEOUT | 256 / 64 / 27 | After how many seconds to recast if the current carried the float away. Keep it large for still water, smaller for flowing water. |
CAMERA_SHAPE | "tall" | Shape of the float camera window in the game: square, wide or tall. Must match your game setting. |
Spinning
Profiles SPIN, SPIN_WITH_PAUSE and SPIN_WITH_LIFT. The numbers below follow that order.
Values: SPIN / SPIN_WITH_PAUSE / SPIN_WITH_LIFT.
| Option | Default | What it does and when to change it |
|---|---|---|
TYPE | normal | Retrieve type: normal is steady, pause is stop and go, lift is with short lifts. |
TIGHTEN_DURATION | 0 / 1 / 0 | How many seconds to take up the slack after the lure lands. |
RETRIEVAL_DURATION | 0 / 1 / 1 | Duration of one retrieve move, seconds. Smaller means a shorter, sharper move. |
RETRIEVAL_DELAY | 0 / 3 / 1 | Pause between moves, seconds. This is the main parameter of the retrieve “character”. |
RETRIEVAL_TIMEOUT | 256 | If no fish takes in that time, the bot falls back to a plain steady retrieve. |
PRE_ACCELERATION / RESET_ACCELERATION | false | Hold Shift during moves and when resetting the rig. |
The ready profiles Walk the dog, Twitching and Jig step are values already tuned (retrieve 0.55/0.3/0.5 s, pause 1.5/1.0/2.0 s) for the specific reel and water body given in the description. On other tackle you will need to adjust them.
Bottom fishing
Profile BOTTOM (feeder, carp). The bot checks the rods in turn, lifts the fish and recasts. Rod keys come from KEY.BOTTOM_RODS.
| Option | Default | What it does and when to change it |
|---|---|---|
CHECK_DELAY | 16 | Pause before checking the next rod, seconds. Larger means less frequent checks. The ready profiles use 64 on calm water. |
CHECK_MISS_LIMIT | 16 | How many checks in a row without a bite before the rod is recast. The long-cast profiles use 10. |
PUT_DOWN_DELAY | 2.0 | Pause before putting the rod down on the stand. |
RANDOM_ROD_SELECTION | true | Check the rods in random order (false means in turn). |
ROD_COUNT | 3 | How many bottom rods to use: the first N keys of KEY.BOTTOM_RODS. Never more than the length of that list. |
CAST_POWER_LEVEL | 5.0 | Cast power. The ready profiles for specific spots use 2–4. |
With several rods, tune CAST_POWER_LEVEL and CHECK_DELAY to the distance and bite rate on your spot.
Trolling
The boat follows a recorded route while the bot fishes with a single spinning rod. The base profile is called TROLL.
How to record a route
- In the game, stand at the start point with the bow pointing along the route.
- In the launcher, on the Trolling tab, press “Record route” and enter a name for the water body (it becomes the file name).
- Press J to start recording, sail a lap with A and D, then press J again.
- Pick the recorded route in the list and start trolling. If the rod is already cast and sits in the holder, tick “Don’t cast before departure”.
The bot reads the heading straight from the screen and corrects it on the go. The J key must be the one that toggles trolling in the game.
| Option | Default | What it does and when to change it |
|---|---|---|
MODE | "troll" | Profile mode. Do not change. |
NAV_LOG | true | Write a navigation log to logs/trolling_nav_<route>.csv. Useful if the boat leaves the route, or to send to support. |
RANDOM_ROD_SELECTION | false | Trolling uses a single spinning rod, so rod selection is off. |
CAST_POWER_LEVEL / CAST_DELAY | 5.0 / 4.0 | As in normal fishing: cast power and the pause after the cast. |
LIFT_TIMEOUT | 16.0 | How long to try lifting a fish before trying again. |
Marine fishing
The pirking and elevator profiles (PIRK, ELEVATOR and their variants) follow the same principles. What sets them apart:
| Option | Default | What it does and when to change it |
|---|---|---|
SINK_TIMEOUT | 60 | How many seconds the lure gets to sink (100–140 on great depths). |
PIRK_DURATION / PIRK_DELAY | 0.9 / 2.0 | Duration of a pirk and the pause between pirks. 0 for PIRK_DURATION means just wait (drifting). |
DEPTH_ADJUST_DELAY / DURATION | 4.0 / 1.0 | Depth adjustment after a cycle. 0 for DELAY means recast instead of adjusting. |
PIRK_RETRIEVAL | false | Reel while pirking (the “pirking with retrieval” profile). |
HOOK_DELAY | 0.5 | Pause before the strike. |
ELEVATE_DURATION / ELEVATE_TIMEOUT | 4.0 / 40.0 | Elevator mode only: lift duration and the overall cycle timeout. |
The ready “Marine” profiles are tuned for particular Norwegian Sea depths and the reels named in the title.
Common mistakes
If something does not work as expected, start here.
Keys in the config do not match the keys in the game.
Open the key list in the game and compare it with KEY: tea, coffee, rods, shovel. The bot presses exactly what the config says.
The game language does not match LANGUAGE.
The bot recognises windows and icons on screen. Use “ru” for the Russian client and “en” for the English one.
The file format got broken.
Do not delete indents or colons, do not use Tab, save the file as UTF-8 (the normal Notepad works). Make a copy of config.yaml before editing.
Changed many options at once.
Change one option at a time and test a few casts, otherwise you cannot tell what helped or broke things.
A non-standard game window size.
The tension bar and icons are designed for standard window sizes. In an unusual window the bot falls back to older timers and some recognition works worse. Run the game full screen or at a standard size such as 1920×1080.
HDR is on in the game.
Detecting the end of reeling by ring colour works only without HDR. Turn HDR off or set WHEEL_BY_FILL: false.
Tension bar values landed on a separator.
Do not use fractions 0.48–0.52 and 0.73–0.77: that is the bar separator and the point will not light up.
Drag above the line strength.
MAX must not exceed what your line and rod can take. Breaks: lower MAX and INITIAL, or raise SENSITIVITY.
ROD_COUNT is larger than the number of keys in BOTTOM_RODS.
With two rods keep two keys in the list and set ROD_COUNT: 2.
Float too sensitive.
The bot strikes without bites: raise FLOAT_SENSITIVITY by 0.02–0.03. It misses bites: lower it by the same.
Notifications do not arrive.
For email use an app password; for Telegram check the token and chat number, and you must have started your bot at least once (“Start” in its chat).
The file with passwords went to support or a forum.
config.yaml holds your mail password and tokens. Remove those lines before sending the file or a screenshot.