v1.3.3 beta / Requires SMAPI v1.10+ / SDV 1.2+ Completely reworks fishing. Changes include: Fish are generally 15% easier to catch It is impossible to catch gold quality (or higher) fish without having a perfect streak Treasure has been reworked: Finding treasure during a perfect catch gives a higher chance to find rare treasure Junk rewards in treasure have had their quantity boosted a little Treasure is caught (and lost) 25% faster A new event while fishing: Unaware fish Fish that are unaware of you will be 50% easier to catch Event chance is based on daily luck and luck level Can be configured in the config file A new perfect streak system: Consecutive perfect catches add to your perfect streak. When the fish leaves that bobber area, you'll lose your streak! Every three perfect catches will increase the quality of your fish by 1 It's possible to catch iridium-quality fish this way! Treasure is more likely to appear as your streak increases Going for treasure will not punish you. You keep your streak, and you can still catch gold quality (or higher) fish. Your streak won't increase though! The difficulty of the fish will also increase as your streak increases, so be careful! Complete control over which fish you will find An option to allow legendary fish to be caught multiple times (this is false by default) This also means that you cannot recatch Legend while this setting is false. No more exploiting Legend for money and exp! Legendary fish are no longer caught by standing in a specific spot and casting your line. Now, they are caught like any other fish, but there is a very low chance you'll find one! Which fish can you catch right now? Press 9 on your numpad to find out! Screenshots Installation ModDrop Manually install from the Nexus page Config The config file contains a LOT of settings for you to change, including the speed you catch (and lose) fish and treasure, rewards you can obtain from treasure, which fish you can catch, and whether legendary fish can be caught multiple times. Take a look at "README - Config Files.txt" in the zip for information as to what each option does. If you will be editing either treasure.json or fish.json, then definitely take a look at this items/weapons spreadsheet created by Torsten. VERY IMPORTANT: If a fish cannot be caught in a location normally, it cannot be caught there in this mod. I am looking for a way around this, but there is no guarantee that it will happen. Therefore, filling in any of the empty locations in fish.json will *not* let fish spawn there, at least until I find a way around this. Compatibility Compatible with ALL .xnb mods! This mod will work with any changes done to Fish.xnb and Locations.xnb The fish.json config file is generated based on these two xnb files, so any changes done through mods will be reflected there as well Most likely compatible with any changes done to cage fishing Probably incompatible with other fishing overhauls. Changelog Check the Nexus page for the updated changelog.
Thanks @TehPers for creating a discussion thread for this mod here (and for the hard work on the mod itself)! This has the potential to obsolete the XNB "easier fishing" mods and make fishing MUCH more exciting, especially for end-game/level 10 fishers.
The description looks fantastic. I just found this after I stopped playing Stardew Valley for 5 months. Some gameplay stuff leaves you burned out after a while and this is perfect for making you want to go fishing. I always ended up going to the skull cavern because the rest was so boring.
Looks like a great mod, but I think it doesn't seem to work on linux(ubuntu). Nothing changes when I fish but it doesn't throw any errors in the console. Is Linux support planned for this mod?
I'll test it in Linux and if I need to, build a Linux/Mac version for it as well. Edit: Still working on it. I've been fixing up bugs and cleaning up the mod, so once I'm sure that most of the bugs are squashed, I'll look into creating this.
Hey, I love this overhaul mod. As a big fisher, the new mechanics really add an edge to finishing that make it varied and fun. One thing though. Is it possible to add a config option to revert Legendary fish to be caught at their specific spots again? I prefer that option, in all honesty. Great mod, and looking forward to further updates. Maybe a crab pot overhaul?
Note that v1.1.5 is available on Nexus as of this post. @TehPers, I see there were some users posting about getting the same item multiple times in a treasure, e.g. you get 3 items of which 2 are bait. I've been using the mod for a while and have yet to see this problem, but I also use the BetterRNG mod which replaces the game's default C# RNG (LCG) with the much more robust Mersenne Twister PRNG. I haven't looked at your code, but could part of this problem just be the game's RNG?
I can add that as an option in a future update. It just means I'll have to disable my custom fish-selecting code whenever you would catch a legendary. My code uses the game's default RNG. If you use the better RNG mod, you will get the results from a Mersenne Twister instead. Regardless, a config option was added to disable duplicate loot.
@TehPers BUG in 1.1.5: crash on Spring 10, 12:40pm, town river below Jodi's house, clean install of mod/default config, happened right after catching a Smallmouth Bass in that location if it matters: Code: [02:59:50 TRACE Teh's Fishing Overhaul] Overriding bobber bar [02:59:51 ERROR SMAPI] An error occured in the base update loop: System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) at TehPers.Stardew.FishingOverhaul.FishingRodOverrides.startMinigameEndFunction(FishingRod rod, Int32 extra) in C:\Users\Teh\Documents\Visual Studio 2015\Projects\StardewValleyMods\FishingOverhaul\FishingRodOverrides.cs:line 44 at TehPers.Stardew.FishingOverhaul.ModEntry.<>c__DisplayClass9_0.<tryChangeFishingTreasure>b__0(Int32 i) in C:\Users\Teh\Documents\Visual Studio 2015\Projects\StardewValleyMods\FishingOverhaul\ModEntry.cs:line 103 at StardewValley.TemporaryAnimatedSprite.unload() at StardewValley.TemporaryAnimatedSprite.update(GameTime time) at StardewValley.Game1.UpdateOther(GameTime time) at StardewValley.Game1.Update(GameTime gameTime) at StardewModdingAPI.Inheritance.SGame.Update(GameTime gameTime) in D:\source\_Stardew\SMAPI\src\StardewModdingAPI\Inheritance\SGame.cs:line 338 Will try with duplicateloot false... Same, at river south of Arrowhead Island, Spring 10, 11:40AM, right after catching a sunfish+treasure, which gave bait+stone at max cast with luck at 5.6%: Code: [03:11:49 ERROR SMAPI] An error occured in the base update loop: System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) at TehPers.Stardew.FishingOverhaul.FishingRodOverrides.startMinigameEndFunction(FishingRod rod, Int32 extra) in C:\Users\Teh\Documents\Visual Studio 2015\Projects\StardewValleyMods\FishingOverhaul\FishingRodOverrides.cs:line 44 at TehPers.Stardew.FishingOverhaul.ModEntry.<>c__DisplayClass9_0.<tryChangeFishingTreasure>b__0(Int32 i) in C:\Users\Teh\Documents\Visual Studio 2015\Projects\StardewValleyMods\FishingOverhaul\ModEntry.cs:line 103 at StardewValley.TemporaryAnimatedSprite.unload() at StardewValley.TemporaryAnimatedSprite.update(GameTime time) at StardewValley.Game1.UpdateOther(GameTime time) at StardewValley.Game1.Update(GameTime gameTime) at StardewModdingAPI.Inheritance.SGame.Update(GameTime gameTime) in D:\source\_Stardew\SMAPI\src\StardewModdingAPI\Inheritance\SGame.cs:line 338 Reverting to 1.1.3 for now.... Edit: welp, 1.1.3 not available any more Found 1.1.2.1 in temp folder, works for now...
1.1.5.1 fixed that yucky bug. Thanks for the report! This is why I like to keep both the latest version and the latest stable version uploaded at once. If this happens again, feel free to grab that second version of the mod until I fix it.
Thank you for the quick fix! I would have used 1.1.4, but that had the demoralizing all-loot-is-basic-loot-mincast issue? Checked your github for releases but that jumped back from 1.1.4 to 1.1.0. Would it be possible to have direct links to archived versions somewhere?
I abhor the fishing mini-game, I am terrible at it, absolutely. Will this mod help me actually catch a fish?
You can lower the difficulty in the config if you want. It'll decrease the amount of movement the fish does when the minigame appears.
Teh's Fishing Overhaul has been updated to v1.2.2, to alert those watching this thread. Fixes an issue with getting good loot when fishing level is greater than 10.
@TehPers I've encountered an error after getting a treasure chest. [23:26:\39 TRACE Teh's Fishing Overhaul] Overriding treasure animation end function [23:26:40 TRACE Teh's Fishing Overhaul] Successfully replaced treasure [23:26:40 ERROR SMAPI] An error occured in the base update loop: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at TehPers.Stardew.FishingOverhaul.FishingRodOverrides.openTreasureMenuEndFunction(FishingRod rod, Int32 extra) in C:\Users\Teh\Documents\Visual Studio 2015\Projects\StardewValleyMods\FishingOverhaul\FishingRodOverrides.cs:line 81 at TehPers.Stardew.FishingOverhaul.ModEntry.<>c__DisplayClass9_0.<tryChangeFishingTreasure>b__1(Int32 i) in C:\Users\Teh\Documents\Visual Studio 2015\Projects\StardewValleyMods\FishingOverhaul\ModEntry.cs:line 119 at StardewValley.TemporaryAnimatedSprite.unload() at StardewValley.TemporaryAnimatedSprite.update(GameTime time) at StardewValley.Tools.FishingRod.tickUpdate(GameTime time, Farmer who) at StardewValley.Farmer.Update(GameTime time, GameLocation location) at StardewValley.Game1.UpdateCharacters(GameTime time) at StardewValley.Game1.Update(GameTime gameTime) at StardewModdingAPI.Inheritance.SGame.Update(GameTime gameTime) in D|:\source\_Stardew\SMAPI\src\StardewModdingAPI\Inheritance\SGame.cs:line 338 These are the parts I've edited: In config.json: "OverrideFishing": false, "OverrideLegendaries": false, "RecatchableLegendaries": true, "GetFishInWaterKey": "None", In treasure.json: { "id": 693, "chance": 0.025, "minAmount": 1, "maxAmount": 1, "minCastDistance": 4, "minLevel": 6, "maxLevel": 10, "idRange": 1, "meleeWeapon": false }, (basically overwrite Dressed Spinners to Treasure Hunter instead.