Russian Fishing 4 Bot logoRussian Fishing 4 Bot
Setup guide

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.

Three rules
  • Copy config.yaml under 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.

OptionDefaultWhat it does and when to change it
TEA / CARROT-1Keys 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_ROD1Key of the main rod. The bot switches back to it, for example after collecting bait.
COFFEE / ALCOHOL / DIGGING_TOOL4 / 6 / 5Keys for coffee, the drink item and the shovel (scoop).
SPOD_ROD7Key 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.

OptionDefaultWhat it does and when to change it
ENERGY_THRESHOLD0.74Energy level (0 to 1) below which the bot drinks coffee. A higher value means it drinks sooner.
HUNGER_THRESHOLD0.5Hunger level at which the bot eats a carrot.
COMFORT_THRESHOLD0.51Comfort level at which the bot drinks tea.
TEA_DRINK_DELAY300Minimum pause between teas, seconds.
COFFEE_DRINK_DELAY / COFFEE_LIMIT32 / 32Pause between coffees in seconds, and the maximum coffees per fish fight.
ALCOHOL_DRINK_DELAY900Pause between drinks, seconds.

Bot behaviour (BOT)

OptionDefaultWhat it does and when to change it
SNAG_DETECTIONtrueThe bot notices a snag instead of reeling in vain. Turn it off only if it triggers for no reason.
SPOOLING_DETECTIONtrueThe bot notices when the line is fully spooled out and reacts accordingly.
SPOOL_CONFIDENCE0.93Strictness of spool detection (0–1). Lower is more sensitive, but also more false alarms.
RANDOM_CAST_PROBABILITY0.06Chance of a random cast with another rod when fishing with several rods. 0 turns it off.
JITTER_SCALE0.2Spread 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_DELAY1800How often to recast the spod rod, seconds (applies when baiting is enabled).
LURE_CHANGE_DELAY1800How often to change the lure, seconds (applies when lure changing is enabled).
PAUSE_DELAY / PAUSE_DURATION1800 / 600How many seconds pass before the bot takes a break and how long the break lasts (applies when breaks are enabled).
WHEEL_BY_FILLtrueThe 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_GAP0.036At 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)

OptionDefaultWhat it does and when to change it
ROD_PLACEMENT.ENABLEDtrueThe bot casts the bottom rods and puts them on the stands itself. Set false if you place them by hand.
STEP_SECONDS / MAX_TRIES0.15 / 3Length 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.

OptionDefaultWhat it does and when to change it
INITIAL22Drag setting (out of 30) the bot returns to before each cast. Must not exceed MAX.
MAX25The 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_STEP1 / 1How many divisions to add or remove at a time.
INCREASE_DELAY2.0How many seconds the bar must stay in the yellow zone before the bot adds drag.
GREEN_INCREASEfalseAlso add drag in the green zone. Turn on for fish that never pull the bar to yellow.
START_DELAY2.0Pause after a bite before the regulator starts working.
LIMIT_RELAX_DELAY10.0After 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)

OptionDefaultWhat it does and when to change it
ENABLE_TENSION_FALLBACKtrueDecide 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_DELAY12.0How 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_ONLYtrue / trueSnag 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_DELAY180.0Emergency fight timeout, seconds. 0 turns it off.
NET_AFTER_FINISH_DELAY0.6How 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)

OptionDefaultWhat it does and when to change it
CAPACITY100Keepnet capacity. Enter your own.
KEEP_TAGSgreen, yellow, blue, purple, pinkWhich tags make a fish go into the keepnet (when selective keeping is enabled).
BYPASS_TAGSyellow, blueFish with these tags are always kept, even if the species is blacklisted.
WHITELIST / BLACKLIST6 species / emptySpecies that are always kept, and species that are not kept without a suitable tag.
SCREENSHOT_EVENTS / SCREENSHOT_TAGSfish, card, gift / yellow, blueWhen 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.

OptionDefaultWhat 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_IDempty / -1Token of your Telegram bot (created with @BotFather) and your chat number.
DISCORD_WEBHOOK_URL / MIAO_CODEemptyDiscord 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

OptionDefaultWhat it does and when to change it
CAST_POWER_LEVEL5.0Cast power from 1 (weak) to 5 (maximum). 3 is about half. Lower it for a near spot.
CAST_DELAY4–8How many seconds to wait for the rig to land and sink. If the bot starts too early, raise it.
LIFT_TIMEOUT16.0How many seconds to try lifting the fish before putting the rod down and trying again.
POST_ACCELERATIONvariesWhether 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).

OptionDefaultWhat it does and when to change it
FLOAT_SENSITIVITY0.67 / 0.75How 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_DELAY0.2 / 0.5How often the bot looks at the float, seconds.
LIFT_DELAY1.3 / 2.5Pause between the float changing position and the strike. Fish come off: lower it. Strike too early: raise it.
DRIFT_TIMEOUT256 / 64 / 27After 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.

OptionDefaultWhat it does and when to change it
TYPEnormalRetrieve type: normal is steady, pause is stop and go, lift is with short lifts.
TIGHTEN_DURATION0 / 1 / 0How many seconds to take up the slack after the lure lands.
RETRIEVAL_DURATION0 / 1 / 1Duration of one retrieve move, seconds. Smaller means a shorter, sharper move.
RETRIEVAL_DELAY0 / 3 / 1Pause between moves, seconds. This is the main parameter of the retrieve “character”.
RETRIEVAL_TIMEOUT256If no fish takes in that time, the bot falls back to a plain steady retrieve.
PRE_ACCELERATION / RESET_ACCELERATIONfalseHold 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.

OptionDefaultWhat it does and when to change it
CHECK_DELAY16Pause before checking the next rod, seconds. Larger means less frequent checks. The ready profiles use 64 on calm water.
CHECK_MISS_LIMIT16How many checks in a row without a bite before the rod is recast. The long-cast profiles use 10.
PUT_DOWN_DELAY2.0Pause before putting the rod down on the stand.
RANDOM_ROD_SELECTIONtrueCheck the rods in random order (false means in turn).
ROD_COUNT3How many bottom rods to use: the first N keys of KEY.BOTTOM_RODS. Never more than the length of that list.
CAST_POWER_LEVEL5.0Cast 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

  1. In the game, stand at the start point with the bow pointing along the route.
  2. In the launcher, on the Trolling tab, press “Record route” and enter a name for the water body (it becomes the file name).
  3. Press J to start recording, sail a lap with A and D, then press J again.
  4. 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.

OptionDefaultWhat it does and when to change it
MODE"troll"Profile mode. Do not change.
NAV_LOGtrueWrite a navigation log to logs/trolling_nav_<route>.csv. Useful if the boat leaves the route, or to send to support.
RANDOM_ROD_SELECTIONfalseTrolling uses a single spinning rod, so rod selection is off.
CAST_POWER_LEVEL / CAST_DELAY5.0 / 4.0As in normal fishing: cast power and the pause after the cast.
LIFT_TIMEOUT16.0How 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:

OptionDefaultWhat it does and when to change it
SINK_TIMEOUT60How many seconds the lure gets to sink (100–140 on great depths).
PIRK_DURATION / PIRK_DELAY0.9 / 2.0Duration of a pirk and the pause between pirks. 0 for PIRK_DURATION means just wait (drifting).
DEPTH_ADJUST_DELAY / DURATION4.0 / 1.0Depth adjustment after a cycle. 0 for DELAY means recast instead of adjusting.
PIRK_RETRIEVALfalseReel while pirking (the “pirking with retrieval” profile).
HOOK_DELAY0.5Pause before the strike.
ELEVATE_DURATION / ELEVATE_TIMEOUT4.0 / 40.0Elevator 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.

Still have questions?

Describe the situation on Telegram and attach the bot’s log.

Buy on Telegram