Changelog
Every version of Sentinel, with full details on what was added, changed, and fixed. Click a version to expand.
Next release
In development
Unreleased
▾
Nothing queued right now — everything previously listed here has shipped. Check back after the next round of work.
v2.6.1
August 9, 2026
Latest
▾
Added
- Much bigger install guide — Aternos, Exaroton, Apex Hosting, Pterodactyl-panel hosts (BisectHosting, PebbleHost, Nodecraft, Sparked Host, and others), Multicraft-panel hosts, your own VPS over SSH, and Docker, plus a plain compatibility table for everyone else — see /install. Covers exactly which platforms Sentinel does and doesn't run on (short version: any Paper/Purpur server, including Bedrock players joining through Geyser; not Spigot, not Fabric/Forge, and not a Bedrock Dedicated Server or Xbox Realm — no anti-cheat can run there, it isn't a Sentinel limitation).
- Public integration events —
SentinelViolationEvent,SentinelPunishmentEvent, andSentinelAlertEventlet other plugins observe, and optionally cancel, a detection or punishment before it takes effect. For server networks that want their own logic in the loop. - Anti-ESP concealment rework — now samples 7 points across an entity's hitbox instead of one, so a partially-obstructed player is judged correctly instead of by their eye position alone. Adds a shared per-pass ray budget so it can never stall the main thread, and fails open (reveals) rather than staying stuck invisible if anything goes wrong.
- Same-IP account linking — staff (and optionally Discord) are notified when a joining player shares an IP with another known account, escalated when the linked account is already banned. Purely informational — it never bans, kicks, or punishes, since shared IPs (siblings, schools, cafés, VPNs, CGNAT) are routinely legitimate.
/sentinel alts <player>lists linked accounts with first/last seen. IPs are stored as a salted hash by default, generated locally and never written to config or git. - 4 new config presets —
lifesteal,hardcore,skyblock, andprisonjoin the existing survival/pvp/minigames/creative/anarchy set. Run/sentinel presetwith no name to list all 9. Same rule as every preset: they only ever retune lag tolerance, suspicion pacing, and corroboration strictness — never a check's actual detection weight. - Manage the chat banned-word list from the dashboard — ask "Ask Sentinel" to ban or unban a specific word and click Apply, no config editing required. Config-file editing (
chat.banned-words) still works exactly as before for anyone who prefers it.
Changed
- Movement detection rebuilt around physics prediction. Flight, speed, and related checks now forecast the player's expected next-tick position from real gravity/velocity math instead of comparing against flat thresholds, and read the server's actual gravity/speed attributes so a legitimate low-gravity effect or custom movement-speed modifier is never mistaken for a hack.
- Ban corroboration is smarter about what counts as independent evidence. The second-opinion gate used to treat any two different check IDs firing together as corroboration. Checks that measure the same underlying signal (timer-a/timer-b, flight-a/flight-b/abilities-a, speed-a/speed-b, and others) are now grouped into one family, so a single root cause can no longer look like two independent pieces of evidence toward a permanent ban.
- Every movement discontinuity now resets all per-check state at once — teleport, respawn, world change, lag, or a cancelled move all fully re-arm every movement check's memory, not just the specific one a past fix happened to cover. Closes the whole class of "flagged right after a legitimate position jump" bug rather than one instance at a time.
- Bedrock detection no longer depends on Floodgate specifically. If Floodgate isn't installed, Sentinel now reads the client brand Geyser reports on its own, so a Geyser-only setup still gets Bedrock players correctly identified and scaled down. Falls back once more to a UUID-format check if neither plugin is present at all.
/sentinel explain <player>moved from an in-game command to the dashboard's Ask Sentinel chat. Type "explain <player>" there for the exact, appeals-grade evidence timeline — pulled live from the plugin's own record, not paraphrased by the AI. Every place that used to point staff at the in-game command now points here instead.
Fixed
- Flight detection restructured so an authorized
/flygrant is checked and exempted first, unconditionally — the raw "client forged its own flying flag" signal is now its own precise packet-level check instead of an inference layered on top of general flight state. - Packet-timing math switched from wall-clock to monotonic time. A system clock adjustment (routine on cloud hosts via NTP sync) could previously skew timing-based checks; it no longer can.
- Duplicate punishments closed. If two checks crossed a punishment threshold for the same player in the same tick, it could produce two kicks/bans and two Discord alerts for one incident. Now only one action is ever taken.
Removed
- Combat-log recording. Sentinel no longer notes disconnects taken shortly after damage or at low health. It never punished on its own, and it's gone entirely now rather than sitting unused —
/sentinel historystill shows kicks/tempbans/bans/fast-rejoins as before.
v2.5.12
August 6, 2026
▾
Changed
- Kick-screen branding is now optional. The "Protected by Sentinel Anti-Cheat" line on the cheat-detected and blacklisted-client kick screens is controlled by
messages.show-branding(default on) — turn it off if you'd rather your kick screens not self-promote the plugin to kicked players.
Fixed
- Speed check false positive after a ping/lag hiccup — the movement speed check (
speed-a) skipped its measurement window during lag or high ping but never reset the window's start time, so the next reading after the hiccup cleared could get skewed by mixing in the stalled period. Most noticeable on weaker connections doing fast repeated movement (e.g. chained sprint-jumps). Now resets cleanly on every exemption path, not just some.
v2.5.10
August 2, 2026
▾
Added
- Anti-VPN join block (
anti-vpn.enabled, off by default) — optionally reject connections from known VPN/proxy/datacenter IPs before they reach the world, checked against proxycheck.io with a per-IP cache so repeat joins don't re-query. Off by default on purpose: VPN use is routinely legitimate (privacy, unreliable local ISPs, corporate networks), so this is an explicit opt-in for admins who've decided the tradeoff is worth it, not a default policy. Fails open on any API hiccup — a third-party outage never locks out real players. Ops and a configurable bypass list are always exempt.
v2.5.9
August 1, 2026
▾
Added
- Rollback / restore (
/ac rollback,/ac restore, Pro) — undo grief with a time + radius + player filter (t:2h r:20 u:Griefer), preview before applying with#preview, and undo a rollback itself withrestore. Applies in lag-free per-tick batches so a large undo never freezes the server. - Full block audit coverage — the block logger now attributes indirect changes back to a player, not just direct place/break: liquids (a poured bucket's ownership follows the flow, however far it spreads), TNT and other explosions (traced to whoever primed or placed the charge), fire, and entity-caused changes like endermen and falling sand.
- Container audit log (
/ac containerlog, Pro) — see who opened a chest, barrel, furnace, hopper, dispenser, dropper, brewing stand or shulker box, when, and what they took or put in. Also shows automatically when you inspect a container with the block-logger wand. - Inspector wand improvements — right-click now shows what used to be at the adjacent block, useful for "what did they remove here."
- Live player & container inspector (web dashboard, Ultimate) — open any online player's real-time health, food, XP, position, active effects, full inventory, armor, off hand and ender chest from the browser. Peek any chest, barrel or shulker's current contents by coordinates.
- Hover descriptions on staff alerts — hover over any check name in a Sentinel alert to see a plain-English one-liner of what it actually detects, covering all 93 checks.
Changed
- Sentinel now ships 93 checks.
- Client join-detection judges faster by default (down from a 3-second wait) — a client that's already sent its brand/channels is judged immediately either way, so this only shrinks the free window before a hidden cheat client gets caught.
Fixed
- Several false bans from ordinary lag. Timer and Blink had no server-TPS or ping awareness at all — unlike every other check in the plugin — so an ordinary server hiccup or a player's own connection stutter could read as the exploit they were built to catch. Both now suspend during a TPS dip and account for high ping, with wider raw thresholds. A second, packet-level timer check watching the same flying-packet stream as Blink had its own separate implementation and was missed in the first pass — a stall-then-burst from chunk loading could read as a speed hack; it now gets the same TPS exemption.
- False bans from Swift Sneak. The sneak-speed check had no awareness of the Swift Sneak boots enchantment (I–III), which legitimately raises sneak speed well past the unenchanted cap. It now reads the enchant level and widens accordingly.
- False bans from sprint→sneak transitions. Vanilla movement doesn't stop on a dime — sprinting into a quick sneak carries residual speed for a handful of ticks while it decelerates. Judged by the actual physical shape of the speed now (a tick slower than the last one is momentum bleeding off, not a held cheat speed) rather than guessing a grace duration.
- False bans from Occlusion when mining a uniform tunnel. Mining through a straight run of one material (e.g. "mined dirt through dirt") is exactly where a tick of lag bites hardest — two adjacent blocks of the same type are interchangeable, so same-material obstructions are no longer flagged. Costs no real coverage: the check exists to catch seeing something hidden, which requires target and obstruction to actually differ.
- False bans from KeepSprint on death (including a plain
/kill) — dying mid-item-use (interrupted eating, drinking, blocking) never fired the event that clears the tracked "using an item" state, so it could stay stuck true into the death/respawn window and combine with a stray sprint reading. Fixed at the source (cleared on death/quit now) and the check itself now also respects the same death/sleep/vehicle exemptions every other movement check does. - False bans from Nuker. Two fixes: a same-tick multi-break now has to happen on two ticks in a row before it's punished, since a very fast tool (Efficiency V + Haste netherite) can coincidentally land two legitimate break completions in the same tick once in a while — a real nuker clearing an area does this every tick, a fluke doesn't repeat. And the break-rate cap now scales smoothly with how fast a block actually breaks for that player instead of a hard "instant vs not" cliff, so a block sitting just under the instant threshold with top-tier gear isn't stuck with the same low cap as a wooden pickaxe on stone.
- False bans from sprinting while eating. Two checks (KeepSprint, NoSlow) were built on the assumption that using any item — including just eating a potato — forces sprint off in vanilla. That's true for blocking with a shield or drawing a bow/crossbow/trident, but not for food, drinks or milk: sprint-eating is completely normal play. Both now only treat the item types that actually cancel sprint as evidence.
- False bans from moving right after respawn. A respawn snaps you straight to the spawn point — a genuine instant position change exactly like a teleport — but the server fires a different event for it, one that movement checks' shared grace period wasn't listening for. The very first movement after clicking respawn had zero grace, so the snap itself could read as a violation. Respawning now grants the same brief grace window a teleport does.
v2.4.0
July 29, 2026
▾
Added
- Flight-B check (paid, shadow mode) — a long-window altitude-band model that catches anti-kick and hover fly that Flight-A's per-tick prediction misses. Detects clients that make brief drops to reset airtime. Also includes a ground-spoof signal for clients claiming to be on the ground while airborne.
- ChatGuard watch-words — opt-in advisory feature: configure a list of cheat-related terms (
chat.watch-words) and staff get a quiet[chat-watch]alert when a player discusses cheating. Never blocks messages — purely informational. - Auto-wire dashboard on activation — running
/sentinel activate <key>now automatically configuresdashboard-sync(enabled, key, include-console) so the intelligence dashboard works immediately with zero manual config editing. - AI-powered backend — the website API now powers the "Ask Sentinel" chat and "Clip Check" video analysis features in the dashboard, with jailbreak-hardened system prompts and input fencing.
- API security hardening — all
/api/*routes now returnCache-Control: no-storeandX-Robots-Tag: noindexheaders. Server IDs are HMAC-SHA256 hashed. Rate limiting on all endpoints.
Changed
- Purchase confirmation email now includes dashboard setup instructions and a direct link to the intelligence dashboard.
- Sentinel now ships 92 checks (up from 70 in v2.3.0).
- Build now targets Paper 26.1.2 (requires Java 25 to run the server; plugin bytecode remains Java 21).
v2.3.0
July 24, 2026
Stable
▾
Added
- Prediction-based anti-fly engine — Flight now validates vertical motion against the exact vanilla physics recursion every tick (
dY_next = (dY − 0.08) × 0.98), seeded from the player's real launch velocity. A client that falls slower than gravity allows — hovering, gliding, or creeping downward — is set back within about a third of a second. Makes fly and hover genuinely impossible rather than merely slow to catch. - HighJump launch check — the jump impulse itself is now validated against the vanilla ceiling (
0.42+0.1per Jump Boost level), catching high/long-jump a full second before the apex. - Strafe-A check — flags illegal mid-air control: accelerating or sharply turning in the air beyond what vanilla input allows.
- BoatFly-A check — catches riding a boat or minecart through the air (a common movement-check blind spot).
- Meteor / cheat-client detection on join — an opt-in sign-probe fingerprints Meteor, Baritone, FreeCam and XRay by their own translation keys; Wurst is caught by its missing chat-session packet, and OpSec by unsigned chat — all while legitimate clients like Fabric and Lunar join normally.
/sentinel allowclient&denyclient— let players with a specific client or cheat join anyway (e.g. permit Meteor on your server) without disabling detection for everyone else./sentinel probe— run the client fingerprint against a player on demand./sentinel commands— full in-game command reference; aCOMMANDS.mdreference now ships inside the jar./sentinel unban— lift a Sentinel ban for online or offline players.- Replay recorder — Sentinel now keeps a rolling ~10-second buffer of each player's movement and actions and saves the run-up to any detection, reviewable with
/sentinel replay <player>. Staff can see exactly what led to a flag.
Added (more checks)
- NoSwing — attacking with no arm-swing animation (a KillAura tell).
- AutoFish — reeling in faster than human reaction after a bite.
- ElytraFly — powered flight faked on an elytra (sustained climb with no firework).
- SprintHack — sprinting while too hungry to sprint (food ≤ 6).
- AutoBlock — landing melee hits while the shield is raised (impossible in vanilla).
- Tower — pillaring straight up faster than jump-and-place allows.
- AntiAFK and FastHeal — AFK-bot and regen checks; off by default, configurable.
- AimSnap, WaterSpeed, InvAttack, VelocityV, GhostBlock, AntiVoid, FastSneak, Riptide, ElytraSpeed, Blink and more — aim, movement, combat-state, packet-level and world detections.
- AutoTool, Bhop, AutoWalk — extra opt-in checks, off by default.
/modsnow works as a standalone command and defaults to your own client.
Added (tools & refinements)
- Replay playback — the replay viewer now plays a clip back like video: an isometric reconstruction of the player moving frame-by-frame, with a ground shadow that stays put as they rise, so fly and hover are unmistakable. Full transport (play/pause, 0.5–4× speed, scrub) plus the height, gravity, path and yaw charts.
- Numbered replays — each player's clips are numbered
#1…#Nand kept longer, so an unban → re-offend → re-ban history stays reviewable. View by number with/sentinel replay view <player> <n>. - Replay id in punishment alerts — every kick/ban tells staff the clip id, one hop from the punishment to watching what happened.
/sentinel checks— lists every check with its weight, cancel state and this-session flag count (noisiest first) — the fastest way to spot and tune a chatty check.- Per-world disable — switch Sentinel off entirely in creative plots, build worlds or minigame arenas via
disabled-worlds, or disable a single check per world. - Glide check — catches forced elytra-glide with no elytra equipped.
- More packet-level guards — invalid held-item slot, implausible single-move position jumps (phase / blink-teleport), and self-attack packets are cancelled at the wire.
- ClickPattern and partial anti-knockback — opt-in detections for autoclickers that hide under the CPS cap and anti-KB that only reduces knockback; both off by default and safe to enable after testing.
- A per-check debug mode for diagnosing “it didn’t detect me,” and diagnostics that never touch legitimate play.
Changed
- Faster, more decisive punishment. Thresholds lowered and the escalation ladder tightened to kick → tempban → ban, with high-confidence checks (NoFall, Nuker, Flight, HighJump, AutoTotem) weighted so blatant cheating is actioned within a couple of detections.
- Vanilla-spoof clients (brand "vanilla" while registering mod channels) are now kicked→banned instead of only raising suspicion.
- Ban screens report simply "Hacking" rather than the exact internal check name, and are shorter to keep chat logs clean.
- Sentinel now ships 70 checks (up from 32), plus a packet engine (with five bad-packet guards) and join-time client detection.
Fixed
- Fly & HighJump are now caught reliably. Movement checks used to exempt any client the server saw as “flying,” so an abilities-based fly hack slipped through untouched. Flight now judges that state instead of trusting it, and unauthorized server-side flight is flagged directly.
- Swimming no longer false-bans. The water speed cap sat below real sprint-swim speed, and surface strokes leaked into the land-speed checks; swimmers are now correctly exempted and the cap raised.
- Fewer false positives across movement. Spider, NoFall, Speed and Flight now share a consistent exemption set (knockback, soft-landing blocks, cobweb/powder snow, levitation), and Speed accounts for the Soul Speed enchantment on soul sand/soil.
- Sign-probe now uses the correct 1.20.3+ sign NBT format, so the client actually resolves the fingerprint keys.
- AutoClicker no longer false-flags holding-to-mine — mining swings are excluded from the click analysis.
- InventoryCleaner no longer false-flags holding Q on a single stack — it now requires many different item types dropped in a burst.
- Nuker detection reworked around same-tick multi-break (breaking two blocks in one tick is impossible by hand) so it catches more reliably.
- AutoTotem now watches the off-hand slot directly, catching every re-equip method, not just inventory clicks.
- Scaffold now also catches downward-look bridging over open air without sneaking.
- Flight setbacks no longer apply fall damage from the correction teleport.
v2.2.0
July 16, 2026
Stable
▾
Added
- NoSlow-A check — detects players moving at full speed while eating, drinking, blocking with a shield, or drawing a bow. Uses Paper's server-authoritative
isHandRaised()state. - FastClimb-A check — flags climbing ladders or vines faster than 3.4 blocks/second upward.
- FastUse-A check — catches consumable items (food, potions) finishing faster than vanilla allows, using the new ItemUseTracker.
- ItemUseTracker listener — internal system that tracks item-use start/finish timing. Feeds both NoSlow and FastUse checks.
- Client brand join announcements — staff with
sentinel.staffpermission see what client brand each player reports on join (e.g. "vanilla", "lunar", or known cheat clients). Configurable viafingerprint.announce-brandin config. announce-only-nonvanillaoption — suppresses brand announcements for vanilla clients so staff chat stays clean.- Expanded cheat-client signatures — added detection for Vape, Rise, Sigma, Nursultan, Novoline, Doomsday, Entropy, Moon, Inertia, and generic "hack" brand strings.
- Auto-versioned download endpoint —
download-jar.jsnow automatically serves the newestsentinel-*.jarin the_assetsfolder. Drop in a new jar and redeploy — no code or env changes needed.
Changed
- ItemUseTracker is registered unconditionally in
activateRuntimefor all license tiers. - Brand announcements are informational only — they never trigger punishments on their own.
v2.1.0
July 16, 2026
Stable
▾
Added
- ToolContext in staff alerts — alerts now show what tool/item the flagged player was holding when detected.
Changed
- Ban/kick messages redesigned — punishment screens now say "Detected & removed by Sentinel Anti-Cheat" with the site URL. Existing servers must regenerate or hand-edit
config.yml→messages.*to see the new text. - FastBreak improved — now re-checks
getBreakSpeedat block-break time (not just at dig start), catching mid-dig Haste potions and tool swaps. - Nuker check tuned — exempts creative mode and added
max-instabreak-per-second: 24config option for legitimate insta-mine scenarios (Efficiency V netherrack, hoe on sculk, shears on leaves).
v2.0.0
July 2026
Stable
▾
Added
- Initial public release of Sentinel Anti-Cheat.
- 28 detection checks across 6 layers: Combat, Movement, Packet, World & Economy, Infrastructure, Chat & Moderation.
- Packet-level engine built on PacketEvents.
- Confidence-based punishment system with weighted, decaying suspicion scoring.
- Evidence logging with appeal codes for every ban.
- Staff tooling: live alerts, verbose mode, freeze, per-player evidence logs, suspicion leaderboard.
- Self-hosted SQLite record store with
/ac lookupand CSV export (Pro). - Live web dashboard with IP masking (Pro).
- Discord webhook alerts (Pro).
- Anti-ESP/freecam occlusion (Pro).
- Ed25519 offline license key system — no phone-home, no license server.
- Lag compensation: checks suspend below 17.5 TPS, widen above 120ms ping, back off after join/teleport/knockback/damage.
- Client fingerprinting with known cheat-client signature detection.
- Bot-flood connection throttling.
- X-ray ore-exposure scoring.
- Dupe watermarking and audit.
- Chat moderation: repeat/flood/caps control, link filter, mute ladder.
