Stardew Valley
0 of 0

File information

Last updated

Original upload

Created by


Uploaded by


Virus scan

Safe to use

About this mod

Automates the fishing minigame in a (hopefully) humanistic way. This means that the mod will have trouble catching Lava Eels with a bamboo pole at Lvl 1 fishing.

Permissions and credits
There are a couple mods that already automate the fishing mini-game for Stardew Valley, but I couldn't find one that specifically had what I wanted:
  • Not unrealistically catch fish you shouldn't be able to at a particular stage in the game. E.g. no catching Ice Pips and Lava Eels with the starter pole at Lvl 1 fishing unless extremely lucky with fish movement
  • Wanted the reel sounds (weird I know!)
  • If RNG makes the fish particularly difficult (darting around), mod should have the chance to fail just as a human would
  • Automatically deal with treasure and the caught fish popup

Basically I wanted a mod to perform like I would on the fishing game, without actually having to play it. On subsequent playthroughs I found I just didn't really want to do fishing anymore, but I didn't want a completely unfair advantage so early in the game (it's still pretty unfair to fish automatically but I've made peace with that.  Hopefully you can too!  =) ).  I created this mod to meet the rather eclectic requirements.

  1. Install the latest version of SMAPI.
  2. Download this mod and unzip it into Stardew Valley/Mods.
  3. Run the game using SMAPI.

How to use
Most of the mod's internals are available through the configuration file. See below for a full description of options. The key config is 'autoCast' and 'autoCastButton' (defaults to 'N' key).

Equip a fishing rod, stand in front of a fishing hole (note that the mod does not actually check this, it will happily cast into a tree if you tell it to), and press the <autoCastButton> key to activate the mod. By default the mod will continually fish for you until you press the <autoCastButton> key again, stopping only if there is an error (such as trying to acquire treasure but your inventory is full).

  • Works with Stardew Valley 1.3 beta on Windows
  • Works in single player
  • Full disclosure: I have not tested this on Mac/Linux. I have not tested this in multiplayer. I may do that going forward, but know that these things are not tested and not guaranteed to work. However, I don't do anything special with other people's inventories or net fields, so I would *expect* it to work.

Harmony is required for sections of the code that do not call a separate function or use a variable that we can manipulate.  For example, the bobber bar code specifically checks if a button is pushed down; there is no 'useButtonPushedDown' variable we could set to 'true'.  Harmony is used for the following:
  • Manipulating the bobber bar like a human (also for the reel sounds)
  • Closing the caught fish pop-up

If you decide to configure the mod to not load Harmony, these functions will not operate even if their options are set to true.


It was mentioned above, but a reminder that this mod WILL fail to catch fish sometimes, especially if you are undergeared or underleveled for the fish you are trying to catch.  This is intentional to mimic a human player.  If this is not what you are looking for or don't find that novelty particularly exciting, there are other great quality mods for your play style!  =)

See also

Configuration Options
I like to expose a lot of configuration options so you can use the mod as you wish.  There is a lot of philosophy about providing 'too much' options to the user that make such configurations intimidating.  The defaults should be sane, so if it's intimidating just ignore the majority of it.

All configuration options are described below.  If a 'Button' option follows, you can set this to a keyboard key and toggle the respective value with the hotkey.  The default value is listed in brackets after the option (e.g. configOption [default] - description).

Important Options

  • autoCast [false] - Turn the mod on or off.  It is recommended to have 'autoCastButton' set to a hotkey, then use that key to turn the mod on or off.  If you set this to true in the configuration file with no button, the only way to stop it is to change the selected tool/item away from the fishing rod before the mod casts again.
  • autoCastButton [N]

Generic Options

  • alwaysPerfect [false] - Even if the fish leaves the green bobber bar, register it as a perfect catch
  • alwaysPerfectButton [None]
  • alwaysTreasure [false] - Always spawn a treasure chest
  • alwaysTreasureButton [None]
  • autoFinish [true] - Will close the caught fish pop up and acquire any treasure that was caught
  • autoFinishButton [None]
  • autoHook [true] - When the "HIT" marker is displayed, automatically hook the fish
  • autoHookButton [None]
  • boringFishing [false] - As soon as the fishing minigame starts, immediately catch the fish (no treasure will be caught)
  • boringFishingButton [None]
  • catchFish [true] - Play the actual minigame by moving the bobber bar and keeping the fish inside of it
  • catchFishButton [None]
  • catchTreasure [true] - If a treasure chest spawns, attempt to catch it.  There is an inherent risk of losing the fish if this is true
  • catchTreasureButton [None]
  • maxCastPower [true] - Always set the casting power bar to 'max'
  • maxCastPowerButton [None]
  • noSeaweed [true] - Seaweed and algae are not a possible catch during fishing.  You may want to turn this off to acquire seaweed/algae as it's difficult to get it otherwise.
  • noTrash [true] - Trash is not a possible catch during fishing.
  • pauseTreasureOnError [true] - The primary source of an error is a full inventory.  If set to false, the game will discard any treasure acquired.  If true, the mod will stop and allow you to determine what to throw away.
  • quickHook [true] - Once the bobber hits the water after casting, if set to true it will immediately generate a "HIT" prompt
  • quickHookButton [None]

Uncommon Options (probably don't touch these)
The following options are used as part of the algorithm to mimic human reaction and also to prevent over correction if the fish darts far away from the bobber.  The algorithm will ramp up the max allowed speed between withFish and WithoutFish as the fish approaches the outside of the bar.
  • fishingBarMaxVelWithFish [1.5] - This is the maximum velocity of the bobber bar when the fish is near the middle.
  • fishingBarMaxVelWithoutFish [7.0] - This is the maximum velocity of the bobber bar when the fish is outside the bobber.
  • fishingBarMaxVelAtBottom [4.0] - This overrides the above speeds as the bobber approaches the bottom of the window.  This prevents the bar from 'bouncing' from hitting the bottom of the window at high speed.
  • HarmonyDebug [false] - Tell Harmony to generate verbose logging of its own
  • HarmonyLoad [true] - Turn off Harmony loading completely.  Note that this will force "catchFish' and 'autoFinish' to 'false'.