Skip to content

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

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_chest
  • stardew_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):

"idle_time": 10,
"top_speed": 1.5,
"up_acceleration": 0.7,
"down_acceleration": 0.7,
"avg_distance": 55,
"move_variation": 10