Datapacks
There are a few ways that datapack or modpack creators can alter the Stardew Fishing experience.
Minigame Items Tag
The list of items that start the minigame when caught from fishing is controlled by the stardew_fishing:starts_minigame item tag.
By default, this tag includes:
#minecraft:fishes- The minigame starts for all vanilla and modded fish items.
#stardew_fishing:inedible_fishes- Contains multiple non-food fish items from Aquaculture. More Info
minecraft:barrier- Necessary for compatibility with Pokémon Fishing.
If you want a non-fish item to start the minigame, just add it to the stardew_fishing:starts_minigame item tag.
Treasure Chest Loot
The loot table that is rolled when a player receives treasure chest loot can be changed in a datapack or modified using other modded methods such as Forge's loot modifiers.
There are two loot tables to target:
stardew_fishing:treasure_cheststardew_fishing:treasure_chest_nether(rolled when fishing in the nether)
Fish Behavior
All fish from vanilla and Aquaculture have custom behavior settings, and behavior settings for fish can be added or tweaked within a datapack.
Fish behavior is defined in data/stardew_fishing/data.json. This file exists on the server and is reloaded whenever you join a world or run /reload.
When a minigame starts, the values from this file pertaining the fish being caught are sent from the server to the client.
The structure of this file is:
{
"behaviors": {
"<modid>:<item>": {
// fish behavior settings
...
}
},
"defaultBehavior": {
// fish behavior settings
...
}
}
If the "behaviors" map has no entry for a fish, it will fall back to the behavior defined in the "defaultBehavior" object.
Fish behavior has 6 parameters. These parameters are:
| Name | Type | Units | Description |
|---|---|---|---|
"idle_time" |
int | ticks | The average time in that the fish will be idle before it chooses a new target position. |
"top_speed" |
float | pixels / tick | The top speed that the fish can reach while moving to its target position. |
"up_acceleration" |
float | pixels / tick² | The acceleration of the fish when it moves up. |
"down_acceleration" |
float | pixels / tick² | The acceleration of the fish when it moves down. |
"avg_distance" |
int | pixels | The average distance between the fish's current position and its next target position. |
"move_variation" |
int | pixels | The maximum variation in the distance between the fish's current and target positions. |
To create unique and interesting behavior, you will most likely want to adjust all of these parameters at least slightly. For reference, the minigame is 142 pixels tall and there are 20 ticks in one second. Here is the default behavior (very easy to catch):