AbyssalFishing [1.16+] | 155 Fish, Sizes & Records, Minigame
1.5.0✅ Everything the paid one does. No license key, no "Pro" edition.
- Tested MC versions
- 1.16, 1.17, 1.18, 1.19, 1.20, 26.1, 26.2
AbyssalFishing
155 fish that each have their own length and weight. Everything the paid one does, with no "Pro" edition.
Made by infinity3113 · Minecraft 1.16 – 26.2 · Spigot & Paper
✔ Free — no premium version, no locked features, no licence key. · Java 8+ · 4 languages (EN / ES / FR / ZH)
Full Documentation & Wiki
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What is AbyssalFishing?
Almost every fishing plugin does the same thing: it rolls a name from a list and hands it to you. Two "Salmon" are the same object, worth the same, forever.
Here every catch draws its own size. A length in centimetres and a weight in kilos, pulled from a curve biased towards the small end — so most come out ordinary, and the huge one is genuinely rare.
That one decision is what makes everything else work. Records are worth chasing, the scales are worth opening, the auction sells your 47.3 cm salmon and not "a salmon", and a trophy is worth multiples of a runt of the same species.
The main menu — everything hangs off here, and it opens with your real odds for each rarity where you are standing.
A note from the author
This plugin is completely free, with no premium version holding features back. If it helps your server:
Thanks for trying AbyssalFishing! — infinity3113
Please leave a review — it genuinely helps other owners find it.
- Found a bug or have an idea? Post it in the thread, or come to Discord — it is quicker for back-and-forth: discord.gg/sBw99njvTU
Donations welcome (optional): Donate via PayPal
It bites — now you have to land it
Reeling in does not give you the fish. A bar appears with a green zone and a marker sliding back and forth, and you have to click while the marker is inside it.
-##########--------------|-- miss
-----------###|######------- hit
# = green zone | = marker
The zone narrows and the marker speeds up with the rarity of whatever bit. A common fish is easy. An abyssal one is genuinely hard. Hit dead centre and the fish comes out up to 25% bigger.
The zone lands in a different third of the bar every time, and the marker never starts inside it — so it is never a free catch and never an impossible one.
Not your thing? /fish minigame turns it off for that player, one line in the config turns it off for the whole server, and fishing goes back to normal.
A whole catch, start to finish — the bar when it bites, the species and its size on screen, the announcement in chat, and a burst of particles in the colour of its rarity so everyone nearby sees what came out.
Sizes, scales and records
Every catch carries its length, its weight, the date and who pulled it out. Drop one on the scales and you see how it stands against your best and against the whole server.
Beat the longest of a species and it is announced to everyone, and the record keeps the size, the date and the name. That is the part a fishing plugin usually cannot offer, because two of its "Salmon" are the same object.
The scales — your catch against your own best and against the server record.
And nine leaderboards on top of that: level, entropy, catches, money made, trophies, longest fish, fish gutted, deliveries and tournaments won.
Leaderboards — cached and refreshed on a timer, never recalculated because somebody opened a menu.
Gut it, craft the bait, fish better
Gutting a fish gives you loot. On its own that loot would just be something else to sell — so it feeds a loop instead. You fish, you gut, you craft the bait, you fish better.
Place a bait station, right-click it, and you get a recipe list that shows what each bait needs and whether you have it, line by line. Left-click crafts one, shift-click crafts as many as you can.
The gutting station — every fish sets its own loot, its own entropy and its own XP.
A recipe takes three kinds of ingredient, and the last two are the interesting ones:
ingredients:
- 'PRISMARINE_SHARD:3' # a plain material
- 'tier:uncommon:2' # two fish of that rarity, any species
- 'fish:sardine:1' # or one specific species
That is what finally gives a small fish a use. A 12 cm cod breaks no record, nobody bids on it and selling it gives you loose change — but as raw material it is worth exactly as much as the big one. A server where only the big fish matters throws away most of what is caught.
And a plugin fish never counts as its vanilla material, so a recipe asking for a plain COD will not eat the 90 cm one you were keeping.
A market that works in both directions
The auction house is the selling side: you list one specific catch — your 47.3 cm salmon, not "a salmon" — and delivery, payment and expiry all go through the mailbox, so it works whether the buyer is online or not.
The bounty board is the buying side. "I pay 5,000 for a marlin of 200 cm or more."
/fish bounty post tier:legendary 150 25000
/fish bounty post salmon 0 500
/fish bounty post any 100 1000
Ask by species, by rarity, by minimum length, or any combination — "any legendary over 150 cm" is how people actually ask. Carry a fish that fits and the bounty lights up; one click hands it in.
The reward is held the moment the bounty is posted, not when it is claimed. Otherwise the poster could spend the money while a hunter spends half an hour looking, and that only has to happen once for nobody to trust the board again.
Show it off: trophies and aquariums
- Trophy cases. A record is a number in a menu, and there it stays. Place a case in your base, right-click it with a fish, and a floating sign above it names the species, the length and who caught it.
- Aquariums. The opposite of a trophy case: several fish at once, taken in turns on the sign above the tank, with a small entropy trickle. Income is set per rarity, so an abyssal is worth more than a common one — and only an owner who is online gets paid, because this is an ornament that pays a little, not a passive farm.
Both use an invisible ArmorStand rather than a hologram plugin, so there is no extra dependency to be missing, and nothing is ever written into your world file.
Progression that does not stop at level 30
- Entropy — the plugin's own currency. It cannot be bought. It is only fished.
- Levels & skills — a skill tree bought with level points and entropy. Never lost, never tied to a rod.
- Deliveries — short jobs that generate themselves and scale to level. A level 3 player is never asked for 40 mythical fish, and the length asked for comes from the species' real range, so it is never impossible.
Deliveries and the skill tree — jobs that scale to your level, and points that are yours and not your rod's.
Rods, augments and bait
- Augments — custom rod enchants. Many are conditional (rain only, night only, full moon only), which is what makes keeping more than one rod worthwhile.
- Baits — drag one onto a rod to attach it. Some fish only bite with their bait.
- Rod condition — line wears when you land a fish, reel wears when you cast. Line at zero snaps now and then; reel at zero speeds the minigame up. It is the one entropy sink that never runs out. Switchable off.
The augment table — drop your rod in, pick an augment, pay in entropy. Hot spot I here: a chance to pull two fish at once, and it goes dead the moment it rains.
️ A world that moves
- Tides. A global event every so often, announced in advance, that simply makes fishing better for everyone for a while. Not a competition — latecomers benefit too.
- Hotspots. The place where the fish are biting today. One zone gives far more, runs dry, and opens somewhere else. You define the zones with coordinates, so they always land in real, reachable water instead of mid-ocean a thousand blocks from anybody.
- Migrations. Marked species change biome every few world days. The codex already tells you where each fish lives — this makes that hint worth re-reading. The layout is deterministic, so a restart never reshuffles the map mid-season.
The codex — every species, whether you have caught it, your personal best, and a hint about where it lives.
Tournaments that stay tense
Six ways to score — most fish, biggest fish, most of a rarity, hunt one species, total weight, most entropy — drawn with configurable weights so it is never the same event twice.
The bar at the top shows who is leading, with what, and how long is left, and every player is told their own position as they score. Knowing whether you are second or tenth is what makes the last minute matter.
Small things that come from actually running one:
- In "biggest fish", scores do not add up — your best stands. Otherwise it would reward whoever fishes most, which is the opposite of what it says on the tin.
- A random rarity hunt never picks the rarest tier. A tournament where nobody scores is an hour wasted.
- Not enough players online? The slot is not skipped — it retries in a minute.
- Everyone who scored gets something, so it does not become the same four people every week.
- Won a tournament while offline? The prize waits in your mailbox.
- Prefer it on your scoreboard?
show-bar: falsehides the bar, and nothing is lost — the time, the leader, your position, your score and the head count all exist as placeholders.
Guilds
Every catch by a member feeds the guild, and the guild's level buffs everyone in it. The light fisher feels what the others do; the heavy one has a reason to bring people along. Totems do the same in a smaller way: placeable blocks that buff everyone fishing within a radius, so people fish together.
A market that reacts
Prices are not fixed. Each species has a saturation that rises as it is sold and decays on its own. Sell a hundred salmon in a row and salmon is worth less for a while.
That is what stops the whole server finding the single most profitable fish and farming it forever. The shop menu shows you which species are currently depressed, so it is information, not a nasty surprise. One line turns it off.
The shop — sell your catch, and buy baits, totems, bait stations and aquariums.
Everything you catch goes in the bag first, which holds far more than your inventory and can auto-store as you fish.
The fish bag — 54 slots by default, and it can fill itself while you fish.
One language per player, not per server
This is the part most plugins get wrong. The language is not a server setting — each player picks their own with /fish lang, and gets the menus, the fish lore and the tournament announcements in it. The same tournament is announced in Spanish to one player and in Chinese to the next, on the same timeline.
Ships with EN / ES / FR / ZH, all four complete — 551 keys each, none missing. Add your own by dropping another file in lang/, and your edits survive plugin updates.
Each player picks their own language, and the whole plugin follows them.
✨ Everything in the box
- 155 fish, every one a different size — across 6 rarities you can rename, remove or add to.
- Tension minigame — the bite is not the catch. Switchable off per player and server-wide.
- Server records and 9 leaderboards — broadcast when beaten.
- Tournaments — six scoring modes, drawn with configurable weights.
- Tides, hotspots and migrations — a global buff event, a zone where the fish are biting today, and species that change biome as the season turns.
- Levels, skills and entropy — a currency you cannot buy, only fish.
- Augments, baits and rod condition — conditional enchants, baits certain fish will not bite without, and line and reel that wear.
- Bait station — craft bait from what gutting leaves you.
- Deliveries — short jobs that generate themselves and scale to level.
- Auction house and bounty board — the selling side and the buying side.
- Guilds and totems — reasons to fish together.
- Trophy cases and aquariums — no hologram plugin needed.
- Codex — every species, your personal best, and a hint about where it lives.
- Dynamic market — prices sag as a species is over-sold and recover on their own.
- Mailbox — prizes and payments wait for offline players, across restarts.
- One language per player — EN / ES / FR / ZH, all complete.
- 112 PlaceholderAPI placeholders — 100 fixed plus 12 that take an argument. Enough to drive a whole scoreboard, tournament included.
- mcMMO aware — Treasure Hunter and the catalogue coexist without either eating the other's loot.
- SQLite, MySQL or plain YAML — zero setup by default, MySQL for a network.
- One jar from 1.16 to 26.2 — verified against both ends every build, not "should work".
⚙️ Configurable down to the individual fish
Rarities are not hardcoded. Want four tiers instead of six? Fifteen? Rename them? It is all in tiers.yml, and every fish just points at one.
Every fish sets its own conditions, its own gutting loot and its own sell price:
One fish, every option it has
frost_marlin:
display: '&9Frost marlin'
tier: rare
biomes: [frozen_ocean, cold_ocean]
time: any # any | day | night
weather: thunder # any | clear | rain | thunder
moon-phases: [0] # 0 = full moon
min-y: 40
max-y: 63
required-level: 15
required-bait: shrimp
regions: [my_region] # WorldGuard
weight: 60 # weight WITHIN its rarity
length: { min: 90, max: 300 }
weight-factor: 0.012
sell-price: 180
sell-size-bonus: 1.5
gut:
entropy: 400
xp: 15
loot:
- 'PRISMARINE_SHARD:1-2:45'
commands: ['25% eco give %player% 500']
migration:
enabled: true
count: 2
pool: [ocean, cold_ocean, frozen_ocean, deep_ocean]An empty list always means "no restriction", never "impossible" — that is the single most common way a fishing config gets silently broken, and it cannot happen here.
The roll is two-step: rarity first, then species within it. With one big bag, adding twenty common fish to your catalogue would quietly make the mythical ones rarer without anybody touching their odds. This way a rarity keeps its odds no matter how the catalogue grows.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta
