FishSentry icon

FishSentry -----

Statistical anti-AFK-fishing detection with rich Discord webhook alerts.



image_2026-04-30_203622955.png
FishSentry catches auto-fishing macros and AFK fishing bots without false-flagging legitimate players. Instead of relying on naive timers or flat rate limits, it builds a per-player statistical profile from real fishing events and looks for the fingerprints that humans cannot fake:

Inhuman timing consistency. Every successful catch contributes a reaction time (the gap between `BITE` and `CAUGHT`). FishSentry maintains a rolling window of the last 20 reactions and computes their standard deviation. Real players sit comfortably in the 80-300 ms range; macros and bots collapse to near-zero variance. When a player's STD drops below your configured floor, points are awarded.
Bobber clustering. Auto-fishers cast from a fixed position and hit nearly the same water tile every time. FishSentry tracks the squared distance between successive bobber landings and flags repeated tight clusters.
Impossibly fast recasts. Macros often recast within milliseconds of a catch. Any cast that comes in under your `min-recast-delay` threshold trips a violation.

Every violation adds points to a per-player score. When the score crosses the configured threshold, FishSentry executes a console command of your choice (kick, ban, tempban, alert staff whatever you want) and dispatches a rich Discord webhook with the full detection snapshot: session length, catches per minute, reaction mean and STD, and a per-check violation breakdown.

The plugin is built for Paper 1.21.x on Java 21, runs entirely on the main thread for event handling (no race conditions, no async event abuse), and only goes async for the Discord webhook dispatch. Per-player state is held in memory and cleaned up automatically on quit, so there is no disk I/O on the hot path.


1. Download `FishSentry-1.0.0.jar` from the resource page.
2. Drop it into your server's `plugins/` folder.
3. Start the server once to generate `plugins/FishSentry/config.yml`.
4. Edit the config (see below), then either restart the server or run `/reload confirm`. (Suggest Restart)

That's it. No database, no external dependencies.


Found a bug, want a feature, or need a custom Minecraft plugin built from scratch?

Discord: `rustycmd`

I take on custom MC plugin development jobs DM me on Discord and I'll get back to you.
Resource Information
Author:
----------
Total Downloads: 8
First Release: Apr 30, 2026
Last Update: Apr 30, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings