Hi! Thanks for downloading Shipping Bin!

This document details how you can change the difficulty of catching different Fish with datapacks.

			 [[[[[ DATAPACKS ]]]]]

To put a datapack into your world, you'll need to place it into the /datapacks/ folder of your world file.
I won't go over everything to do with datapacks here, but there's two examples datapacks in this folder that will
work out of the box. Place either [default_datapack.zip] or [easy_mode.zip] into the /datapacks/ folder and they 
should add their data to the save file.
I don't recommend using both more than one datapack on one save file at once.
Every fish can have an entry under the data.json file that is stored in [<datapackname>/data/stardew_fishing/].
Anything not in this structure won't be recognised, so make sure your data.json is in there!

			 [[[[[ CUSTOMISING ]]]]]

So, how can you change how hard it is to catch specific fish? There's only one file you'll need to change,
and that's under the data.json under [<datapackname>/data/stardew_fishing/].
For an example on how to change it, let's look at an example json:

#########################################################
{
  "behaviors": {
    "salmon": {
      "idle_time": 30,
      "top_speed": 7,
      "up_acceleration": 0.4,
      "down_acceleration": 0.4,
      "avg_distance": 50,
      "move_variation": 5
    },

    "aquaculture:tuna": {
      "idle_time": 25,
      "top_speed": 8,
      "up_acceleration": 0.4,
      "down_acceleration": 0.8,
      "avg_distance": 50,
      "move_variation": 35
    }
 
  },
  "defaultBehavior": {
    "idle_time": 25,
    "top_speed": 8,
    "up_acceleration": 0.4,
    "down_acceleration": 0.8,
    "avg_distance": 50,
    "move_variation": 35
  }
}
#########################################################

Above we see a "behaviors" section that tells us how to handle specific fish, and then we have a 
"defaultBehavior" section that tells us how to handle any fish that's not defined in the Behavior section.
With the above data.json, Salmon and Tuna (from the mod Aquaculture) would have unique behavior, while
any other fish (from vanilla or any other mod) would use the default behavior.
But what do all those values mean? Let's look at this part in more detail.

#########################################################
    "salmon": {
      "idle_time": 30,
      "top_speed": 7,
      "up_acceleration": 0.4,
      "down_acceleration": 0.4,
      "avg_distance": 50,
      "move_variation": 5
    }
#########################################################
The first part, "salmon", is the item id of the fish that you're defining. For vanilla fish you can just
use the name ("cod", "tropical_fish", etc) but for modded fish you'd need to put the mod's namespace before it.
For example, above we define the Tuna item from Aquaculture with "aquaculture:tuna" because that's the ID for that
item.
Next is the values that actually control how hard it is to catch the fish. The values are:
"idle_time" is the amount of time between the fish choosing a new location to move to in ticks (1/20th of a second).
"top_speed" is the maximum speed that a fish can move at (in pixels/tick)
"up_acceleration" is how the fast the fish can accelerate upwards. (in pixels/tick)
"down_acceleration" ... I think you can guess.
"avg_distance" is the average distance from its current position that the fish tries to move to in pixels.
"move_variation" is the variation of the distance that the fish moves to: i.e with 50 avg_distance and 
    5 move_variation, the fish icon will move to a spot between 45 and 55 pixels away every time it tries to move.


That's about all there is to it! If you have any other questions, feel free to ask me in the comments on the mod page.
Also don't forget to check out the full Project Stardew modpack when it comes out :)))) 

Good luck and enjoy! 
- garflemn


