RELEASED Teh's Fishing Overhaul

Discussion in 'Mods' started by TehPers, Feb 4, 2017.

  1. TehPers

    TehPers Void-Bound Voyager

    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

    [​IMG]



    [​IMG]


    Installation

    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.
     
      Last edited: Apr 25, 2017
      delsei, Flumme, WARBANDIT and 10 others like this.
    • quirkyquark

      quirkyquark Phantasmal Quasar

      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.
       
        Beon likes this.
      • TehPers

        TehPers Void-Bound Voyager

        No problem! Let me know if you have any feedback, or if you encounter any bugs.
         
        • Beon

          Beon Scruffy Nerf-Herder

          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.
           
          • Selfish_Ocelot

            Selfish_Ocelot Void-Bound Voyager

            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?
             
            • TehPers

              TehPers Void-Bound Voyager

              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.
               
                Last edited: Feb 7, 2017
              • Aquae

                Aquae Big Damn Hero

                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?
                 
                • quirkyquark

                  quirkyquark Phantasmal Quasar

                  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?
                   
                    Last edited: Feb 8, 2017
                  • TehPers

                    TehPers Void-Bound Voyager

                    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.
                     
                    • quirkyquark

                      quirkyquark Phantasmal Quasar

                      @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...
                       
                        Last edited: Feb 8, 2017
                      • TehPers

                        TehPers Void-Bound Voyager

                        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.
                         
                        • quirkyquark

                          quirkyquark Phantasmal Quasar

                          Thank you for the quick fix! :V 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?
                           
                          • TehPers

                            TehPers Void-Bound Voyager

                            Hmm, I could just keep them all on the nexus page from now on I guess. Would that help?
                             
                            • quirkyquark

                              quirkyquark Phantasmal Quasar

                              That's usually what most mods on Nexus do, would be great!
                               
                              • Smallcorners

                                Smallcorners Subatomic Cosmonaut

                                I abhor the fishing mini-game, I am terrible at it, absolutely. Will this mod help me actually catch a fish?
                                 
                                • TehPers

                                  TehPers Void-Bound Voyager

                                  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.
                                   
                                  • quirkyquark

                                    quirkyquark Phantasmal Quasar

                                    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

                                      TehPers Void-Bound Voyager

                                      Thanks. I'll try to post the updates from now on. Sorry, I'm not used to uploading to the forums.
                                       
                                      • quirkyquark

                                        quirkyquark Phantasmal Quasar

                                        No problem! Just reply to this thread with even a single word and we'll get alerted!
                                         
                                        • ScalesofGrey

                                          ScalesofGrey Astral Cartographer

                                          @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.
                                           

                                          Share This Page