SquidLab Anti-Cheat | Advanced Detection | Web-Dashboard | O
1.6.8Detect cheaters without hurting your TPS or your players
1.6.8latestCloudNet supportAug 12, 2026 Violation storage for CloudNet Violation levels live in plugins/SquidLab/violations.yml, which works everywhere except on CloudNet, Pterodactyl templates and anything else that rebuilds the server folder from a template on every start. There the file is thrown away with the folder, so a cheater's violation level resets on every restart and on every server switch. config.yml has a storage section now. Point it at your own MySQL and give every server of a network the same NETWORK-ID: violation levels then survive restarts and follow the player from lobby to minigame. Optional for everyone else, and if the database is unreachable the plugin logs it once and carries on with the file. Also in this release · Servers that share one public address and differ only in port are grouped into a network in the dashboard automatically. It only groups them visually: they keep their own watch list, ban wave and logins until a super-admin confirms the network. Local and LAN addresses are never grouped. · The update notice is console-only now. Set update.NOTIFY-IN-GAME if you want your admins told in chat as well.1.6.61.6.6 - Small fixesAug 5, 2026 Small fixes The server cards show which SquidLab version each server runs, which makes an outdated one easy to spot. Config version 23, your own values are kept. Works on 1.8.8 through the newest versions, as always.1.6.51.6.5 - Staff roles, server names, small fixesAug 4, 2026 Staff roles You can build your own roles in the dashboard now, a name, a colour and a list of what the role is allowed to do. Banning, the watch list, the ban wave, running the ban wave, clearing suspects, editing checks, handing out logins and managing roles are all separate switches, so a helper can get exactly the buttons you want them to have and nothing else. Roles are handed out per login and can be changed at any time. You can only ever give away rights you hold yourself, which keeps every role safely below the one that made it. Nothing changes for anybody until you assign a role: an admin keeps full access, and a staff login without a role keeps exactly the rights it had before. Server names Every server used to arrive as "My Server", which was not much help on a dashboard with several of them. Servers report a label like Server 4821 now, and a real name is given inside the dashboard. Two servers can never carry the same name. Small fixes The detection chart draws every time range instead of only the last day, the server cards keep a fixed order instead of rearranging on every refresh, and the plugin no longer keeps identity files in its own folder.1.6.41.6.4 - dashboard addressAug 4, 2026 New dashboard address The dashboard now lives at squid-lab.org. Your messages.yml is updated automatically, and only where it still holds the old link: any wording you changed yourself stays exactly as it is. Also in this release Small dashboard fixes. The detection chart draws every time range instead of only the last day, and the server cards keep a fixed order instead of rearranging themselves on every refresh.1.6.31.6.3 - DetectionsAug 2, 2026 Recommended for everyone. Detections now prevent the cheat Most movement checks used to report and nothing more. That is fixed. · Flight now falls. The player is put back on a normal gravity curve until they reach the ground, and lands with the fall damage the drop should have cost. Previously flight could be flagged and flown at the same time. · Walking on water drops the player in, instead of teleporting them back to the shore they simply walked out of again. · NoFall hands the swallowed damage back through the server's own damage pipeline, so armour and feather falling still count. A fall that would have killed anybody else kills here too. · Spider is detected at all now. It never fired before. · Speed caught one widely used module that was measurably passing underneath the old limit. False positives fixed · Walking up a staircase could pull you back. Stairs and slabs now have their own exemption, the same way honey, slime and ice already did. · Jumping into a pool was reported as walking on water. · Standing in a waterfall or climbing out of a pool was reported as Flight. · Crossing water slowly with a Jesus cheat is now detected, which the old version missed. Dashboard Checks disappeared from the dashboard a couple of minutes after every restart and only came back with another restart. The cleanup for long-offline servers was removing every server instead of none. Fixed, and the check list now repairs itself without a restart. Notes · Config version 21. Your own values are kept and every change is listed in the console. · Works on 1.8.8 through the newest versions, as always. · SquidCloud, the optional companion server, is unchanged and still included.1.6.21.6.2 - Two false positives fixed, a new jump check, and the optional cloudAug 1, 2026 Update if you have players who jump near walls, slabs, fences or iron bars. Two false positives, both fixed · GroundSpoof flagged honest jumping. Jumping next to a wall, on a slab, against a fence or against iron bars produced a continuous stream of violations. The cause was ours, not the player's: the ground sample reaches sideways into a neighbouring block and only looks 0.2 blocks down, so a wall next to you or a slab under you kept answering "there is ground here" through an entire jump while the client honestly reported being airborne. The check now asks a simpler question that no block shape can confuse: a player moving vertically is not standing on anything. A real ground spoof is somebody sitting still and claiming otherwise, and that is still caught. · The same check counted a violation every tick. Once its buffer passed the threshold it stayed there, so three seconds of jumping reached VL 84. It now costs one violation per full buffer, which for the same three seconds is five. Turning a check off now sticks /squidlab disablecheck <check> and the dashboard toggle both write to config.yml. Previously a check you switched off because it was misbehaving came back at the next restart, which is the worst possible moment for it to return: nobody is watching and the reason it was switched off is usually still there. New: INOP, and KillAura D is the first one A red INOP tag for a check that has been shown not to work. An INOP check never runs, on any server, and no toggle brings it back. It is not a switch you can set: it is decided in the code, so nobody has to discover for themselves that a check was worth turning off. KillAura (Type: D) is now INOP. It compared rotation deltas against the player's mouse sensitivity raster, on the theory that a computed aim rotation cannot fit that raster. Recordings of a real kill aura and of honest play against the same mobs settled it: Code (Text): honest aim at mobs 0.000 to 0.048 LiquidBounce kill aura 0.000 to 0.051 Identical. The measurement itself is fine, a synthetic centre-snapping aura scores 0.008 to 0.040 and separates cleanly. Real auras simply round their rotations to the player's own sensitivity raster, so they fit it exactly as well as a hand does. The check is kept in the source with the numbers written next to it, so the finding is on record and nobody rebuilds it from the same idea. EXPERIMENTAL keeps its old meaning: it works, it just costs performance or has not been proven widely enough to ship enabled. Dashboard housekeeping Servers that have not reported in for 14 days are removed from the dashboard along with their suspects, violations and staff accounts. A server that comes back re-registers by itself on its next heartbeat. The window is configurable with dashboard.REMOVE-OFFLINE-AFTER-DAYS. New check: HighJump (Type: B) Catches a jump that starts too fast, rather than one that ends too high, so a launch module is caught on its first tick. The limit comes from recordings rather than from a guess: Code (Text): stepping up a staircase 0.500 <- the honest ceiling sprint-jumping over blue ice 0.420 knockback II, sprint hit 0.400 ordinary sprint jump 0.248 ---------------------------------------- limit 0.80 Slime and firework-boosted elytra legitimately exceed it and are exempted rather than tolerated, because widening the limit far enough to cover them would let the cheats through too. Jump Boost and the jump-strength attribute raise the limit by exactly what they add to a jump. Also in this release · AuraBait (Type: A and B), experimental and off by default. An invisible- by-position target appears behind a player who has already collected violations, inside reach, for two seconds. It is a real entity, so the anti-bot filters cheat clients carry cannot tell it from any other mob, and it is removed the moment the crosshair comes near, so a hand can never be pointing at it when a hit lands. Confirmed against a live kill aura. · Honey, powder snow, scaffolding, soul soil, bamboo and four other blocks were invisible on modern servers before this release, because a missing api-version made Bukkit answer every block query through the pre-1.13 conversion layer. Blue ice was coming back as air. Any movement check standing on one of those was judging blind. · Config version 14. Your customised values are kept and the changes are listed in the console. SquidCloud is in the download The optional companion server now ships inside the same zip, in a SquidCloud folder with its own README. It is free, self-hosted and needs no account: start one jar on your own machine, paste the three lines it prints into your config, restart. That is the whole setup, and it takes the long-window analysis off your tick loop entirely. It is genuinely optional. Delete the folder if you are not interested and nothing in the plugin changes.1.6.1Jul 30, 2026 Nothing about detection changed in this one. · Startup card in the console. SquidLab now prints how many checks are active, your server version, the selected language, and whether autoban and the dashboard are on. Handy for spotting at a glance that autoban is still off, or that your language did not apply. · Shutdown line. Says when SquidLab stops. If it shows up during normal operation, something unloaded the plugin and nobody is being checked. · The update checker no longer loops. It used to ask SpigotMC every six hours. A jar's version cannot change while the server runs, so it now asks once at startup and stays quiet. · Two config options removed: update-checker.ENABLED and update-checker.RESOURCE-ID. The check is always on, and the resource id identifies the plugin, not your server, so it lives in the jar now. Just replace the jar and restart. Your config is migrated and backed up automatically. Coming from 1.5.0 or older? Read the 1.6.0 post first, that is the release with the false-positive work, the 7 built-in languages and the removal of NoSlow.1.6.01.6.0 - The quiet update: 7 languages and the end of false flagsJul 29, 2026 · Hardcore problem fixing · added 7 languagesAlpha26.2 Support, Developer API & Glide DetectionJul 13, 2026 · 26.x support - verified on Paper 26.2, one jar still covers 1.8.8 and up · Developer API - cancellable PlayerViolationEvent & PlayerPunishEvent, SquidLabApi (VLs, exemptions, bedrock/brand/CPS queries) · New Flight C (glide detection), rewritten Jesus, average-speed window, tighter Fast* checks
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