Custom Loot Tables

Every ripple reward comes from a standard Minecraft loot table, so you change rewards with a normal data pack. No config option is involved.

Table locations

All 13 tables live under data/ddv_fishing/loot_table/gameplay/fishing/:

Tier Other biomes Ocean Swamp Jungle
๐Ÿ”ต Common common.json ocean_common.json swamp_common.json jungle_common.json
๐ŸŸข Rare rare.json ocean_rare.json swamp_rare.json jungle_rare.json
๐ŸŸ  Epic epic.json ocean_epic.json swamp_epic.json jungle_epic.json
๐ŸŸก Legendary legendary.json (every biome)

How the biome is picked and what each table holds today: Biomes & Loot.

The folder is loot_table, singular. Minecraft renamed it in 1.21, and a data pack using the old plural loot_tables is silently ignored.

Example override

To make Epic ripples outside ocean, swamp and jungle always give a diamond, put this in your data pack at data/ddv_fishing/loot_table/gameplay/fishing/epic.json:

json
{
  "type": "minecraft:fishing",
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:item",
          "name": "minecraft:diamond"
        }
      ]
    }
  ]
}

To change epic loot everywhere, override ocean_epic.json, swamp_epic.json and jungle_epic.json too.

Loot context

Tables roll with the minecraft:fishing context, so vanilla fishing conditions and functions work. These parameters are supplied:

Parameter Value
origin The bobber's position
tool The fishing rod in use: main hand, else off hand
this_entity The fishing bobber
luck The player's Luck attribute

Because the rod is the tool, Luck of the Sea and Lure work as in vanilla for anything that checks the tool.

Things to know

  • An empty roll gives a Cod. If a table produces nothing, the catch falls back to one Cod so a won minigame is never unrewarded. A table meant to sometimes give nothing will give a Cod instead.
  • Perfect Catches don't roll again. They double the stack size of every ordinary item in the result. Bows, enchanted books and fishing rods (any rod, modded ones included) are never doubled, so a Perfect Catch can't duplicate treasure. See The Minigame.
  • The journal only tracks fish species. Putting a new item in a table makes it catchable but doesn't add a journal row. To track it, add a species for it: see Custom Fish Species.
  • Removing a species' item from every table leaves the species uncatchable. If it counts toward completion, nobody can finish the journal.

Applying changes

Loot tables reload with /reload, no restart needed. That's unlike dreamlight_fishing.json, which is only read at startup.