Every fish has a weight — and a leaderboard to prove it
Vanilla fishing hands you an item and nothing else: no stakes, no reason to go back to the water. This plugin gives every catch a weight, stacks those weights into a running tournament, and pays out the winner automatically before starting the next round. Players see the weight floating above the bobber while they reel, so the whole thing is visible without opening a single menu.
|
10
Fish species preconfigured
|
3
Ways to catch one
|
|
2
Prizes every round
|
0
Required dependencies
|
| ✓ |
Live weight above the bobber — the fish and its weight appear while you are still reeling it in |
| ✓ |
Spear and bow fishing — the fish sticks to the shaft, permission-gated per weapon |
| ✓ |
Rounds restart themselves — pays out, resets, starts again, no admin in the loop |
| ✓ |
Discord feed — every catch, every lead change, every winner |
See it in action
A tournament that runs on its own clock
One number in the config sets the round length. Everything after that happens without you: totals add up, the chat announces every new leader, prizes go out, and the next round opens the same second the last one closes.
Total weight decides the winner
Every fish a player lands during the round is added to their total, so a steady session beats one lucky cast. The heaviest single fish is tracked separately and paid separately.
Weights that make big fish rare
Each species has its own minimum and maximum, and the roll is weighted toward the light end of that range. A 13.4 kg shark is not something a player sees every hour, which is exactly what makes the leaderboard move.
Ten species, or as many as you like
Yellow perch, minnows, sardine, small trout, catfish, orange roughy, salmon, herring, anchovy and small shark ship with sensible ranges. Any other item shortname can be added to the list with its own weight range.
Kilograms or pounds
One switch changes the unit everywhere at once: chat, leaderboard, floating text and Discord.
| ✓ |
Lead changes are announced — to everyone, or only to players who are actually fishing |
| ✓ |
Every catch is confirmed in chat — species and weight, to the gram |
| ✓ |
All four messages live in the language file — translate or rewrite them without touching the config |
Three ways to land a fish
The rod still works the way players expect. Spears and bows are new ground: aim at the water, and a fish can end up stuck on the shaft.
The weight shows up before you land it
While the rod is fighting a fish, its name and weight float above the bobber and refresh five times a second. Regular players see it too, without any admin flag on the account.
Spear fishing
Throw a stone or wooden spear into water and the catch chance rolls. On a hit, the fish sticks to the spear where it landed and goes into the inventory when the spear is picked up.
Bow fishing
Same idea with any bow, on its own chance and its own permission. Both methods only trigger on shots that actually hit water, so nothing spawns on dry land.
Tuned per weapon
Chance to catch, permission, and a blocked-species list are separate for spear and bow. Ship the spear to everyone at 15% and keep the bow as a VIP perk, or the other way round.
Two prizes, paid the way your server pays
The round ends, the totals are final, and the payout happens in the same tick. Two separate prizes mean a player who never leads can still walk away with something.
Best total and heaviest fish
The overall winner and the single biggest catch of the round are two different prizes with two different amounts. One player can take both, or two players can split them.
Points through ServerRewards or Economics
Whichever of the two is installed gets used, ServerRewards first. The currency name shown in chat is yours to set, so "RP", "coins" or "scrap" all read correctly.
Or any server command
Each prize also carries an optional command with %steamid% replaced by the winner. Kits, item giveaways, a permission for the next wipe, a broadcast — anything your console can run. Set the point amount to 0 and the command alone is the prize, which is how the plugin works with no reward plugin installed at all.
The contest in your Discord
Drop a webhook URL in the config and the round narrates itself to the people who are not online right now — which is most of them, most of the time.
Three events, each optional
A fish is caught, the lead changes, the round ends with its winners. Leave a message text empty and that event stops posting, so you can keep only the results and skip the play-by-play.
Your wording, your rate limit
Every message is a template with the player name, species and weight filled in. Posts are queued and sent one per second, so a busy evening on the water never trips Discord's limits.
A round wrapping up in Discord:

Built to be left alone
| ✓ |
The round survives a restart — standings and the clock are saved to disk and picked up where they left off, not reset to zero |
| ✓ |
Nothing to schedule or restart by hand — an empty round with no catches simply rolls into the next one |
| ✓ |
No required dependencies — ServerRewards and Economics are used if present, never demanded |
| ✓ |
Oxide and Carbon — one file, same behaviour on both |
| ✓ |
Clean unload — standings are written out first, then everything the plugin started is stopped and removed |
One command, open to every player
No permission is needed to check the standings.
| /fishcontest |
Time left in the round, the top five by total weight, and your own place if you are further down |
Permissions gate the two alternative fishing methods, and only those:
| fishweightcontest.spear |
Catch fish by throwing a stone or wooden spear |
| fishweightcontest.bow |
Catch fish by shooting a bow into water |
Before you buy
Do I need ServerRewards or Economics?
Only if you want to pay in points. Whichever one is installed is used automatically, ServerRewards first. Without either, set the point amount to 0 and hand out the prize with a server command instead.
What happens to the contest when the server restarts?
Nothing. Standings and the round's start time are saved, so the same round continues with the same totals and the clock keeps running from where it was.
Do I have to start each round manually?
No. When a round ends the prizes go out and the next one starts immediately. If nobody caught anything, it resets and starts again without announcing a winner.
Can I add fish that are not in the default list?
Yes. The weight table is keyed by item shortname, so any fish item can be added with its own minimum and maximum weight. Anything not in the table is caught as usual, it just does not count toward the contest.
Can I keep spear and bow fishing off?
Each method has its own on/off switch and its own permission. Leave them disabled and the plugin is a pure rod tournament.
Is Discord required?
No, it is one toggle. With it off, everything still happens in chat.
Will the announcements spam my chat?
Lead changes are the only broadcast, and they can be limited to players taking part in the contest. Catch confirmations go to the player who caught the fish, nobody else.
How long should a round be?
The default is three and a half hours, which fits an evening session. It is a value in seconds, so anything from a quick one-hour sprint to a full wipe-long marathon works.