Raven
A lightweight, packet-level anticheat built on ProtocolLib
Fly • Speed • Scaffold • NoFall •Reach • Hitbox • Aim • Velocity • BadPackets
Overview
A lightweight, packet-level anticheat built on ProtocolLib
Fly • Speed • Scaffold • NoFall •Reach • Hitbox • Aim • Velocity • BadPackets
Raven is a self-contained anticheat plugin covering the movement, building, and combat cheats servers deal with most: flight, speed, scaffold/god-bridging, fall-damage evasion, reach, hitbox manipulation, aimbots, and no-knockback ("velocity") hacks. It reads raw client packets through ProtocolLib rather than relying only on Bukkit's higher-level events, which catches things a purely event-based anticheat misses.
Every check is built around one rule: never punish a normal player for playing normally. Elytra, MLG water/hay/slime saves, Feather Falling, ice, potion effects, lag spikes, and legitimate fast bridging are all explicitly accounted for rather than guessed at. Detections use a violation-level + decay system, so a single odd movement never triggers anything — only a sustained pattern does.
RAVEN WAS MADE WITH HELP FROM CLAUDE
Features
- 9 checks: Fly, Speed, Scaffold, NoFall, Reach, Hitbox, Aim (3 modes), Velocity, BadPackets
- Packet-level detection via ProtocolLib — real rotation/position data, not just PlayerMoveEvent
- Automatic, escalating, persistent punishments (warn → kick → temp-ban → ban), saved to disk so offenders can't dodge escalation by relogging
- Full in-game GUI — toggle checks, adjust sensitivity, and edit the entire punishment ladder without touching a config file
- False-positive resistant by design — every check documents its own exemptions in-line
- Lightweight — no database required, everything runs off YAML
- Paper/Spigot 1.20.4+
- ProtocolLib (required, hard dependency)
- Install ProtocolLib first
- Drop Raven.jar into your plugins folder
- Restart the server
- Run /ac gui in-game to open the control panel
Spoiler: Full Documentation (click to expand)
Commands
/ac gui - opens the main control panel
/ac toggle <check> - enable/disable a check directly
/ac vl <player> - view live violation levels for a player
/ac offenses <player> - view a player's persistent offense count
/ac resetoffenses <player> - clear a player's offense history
/ac reload - reload config.yml
Permissions
raven.admin - access to /ac and the GUI (default: op)
raven.notify - receive live violation alerts in chat (default: op)
raven.bypass - bypass all checks entirely (default: false)
raven.bypass is meant for admins/testers building on the server, not general staff — anyone with it is fully invisible to every check.
The GUI
/ac gui opens a 3-page menu:
Fly — flags sustained hovering that isn't explained by any legitimate cause. Exempts: creative/spectator, /fly, elytra (plus a 1s grace window right after closing your wings), vehicles, swimming, Levitation, Slow Falling, and a short grace period after any teleport/knockback/damage.
Speed — computes an expected speed ceiling from sprinting, Speed potion tiers, and ice, then only flags real excess over that with a generous tolerance multiplier.
Scaffold — scores four independent signals (fast placement rate, unnaturally consistent rotation, not sneaking + not looking down, high movement speed) and only flags when at least 3 of the 4 line up together. A legitimate fast bridger who does even one of those things normally (glances down, sneaks at an edge, has natural timing jitter) stays clean.
NoFall — tracks real fall distance and expects fall damage on any drop over 3 blocks. Exempts elytra/gliding at any point in the fall, Slow Falling, Feather Falling boots at any level, and landing in water, lava, slime, cobweb, hay bales, vines, ladders, scaffolding, powder snow, sweet berry bush, and big dripleaf — covers essentially every legitimate MLG.
Reach — pure distance check with generous latency slack on top of vanilla's ~3-block survival reach.
Hitbox — ray-traces the attacker's exact look vector against the target's real (padded) bounding box, catching hits that shouldn't register even when reach and angle look fine on their own.
Aim — three independent, differently-triggered modes:
BadPackets — catches non-finite/NaN packet values, out-of-range pitch, and sustained (not single-burst) packet-rate anomalies indicating timer hacks. Explicitly designed to ignore normal post-lag-spike packet bursts.
Automatic Punishment System
Every confirmed violation (already past each check's own filtering above) adds to a persistent offense counter per player, stored in punishments.yml — survives relogs and server restarts. The default ladder:
Offense 1 -> Warn
Offense 3 -> Kick
Offense 5 -> Temp-ban (10 minutes)
Offense 8 -> Permanent ban
The whole system is gated behind one master switch (
punishments.enabled, default
false). While it's off, offenses are still silently counted and viewable via
/ac offenses <player>, so you can watch how the system would behave before ever punishing anyone. Bans go through Bukkit's own ban list, so they show up in
/banlist and interoperate with anything else reading it.
Recommended Setup
general:
alert-permission: raven.notify
punishments:
enabled: false
stages:
- offenses: 1
action: WARN
- offenses: 3
action: KICK
- offenses: 5
action: TEMPBAN
duration-minutes: 10
- offenses: 8
action: BAN
checks:
<check-name>:
enabled: true
vl-threshold: <number>
decay-seconds: <number>
Known Limitations
Code (Text):
/ac gui - opens the main control panel
/ac toggle <check> - enable/disable a check directly
/ac vl <player> - view live violation levels for a player
/ac offenses <player> - view a player's persistent offense count
/ac resetoffenses <player> - clear a player's offense history
/ac reload - reload config.yml
Code (Text):
raven.admin - access to /ac and the GUI (default: op)
raven.notify - receive live violation alerts in chat (default: op)
raven.bypass - bypass all checks entirely (default: false)
The GUI
/ac gui opens a 3-page menu:
- Main Menu — jump to Checks or Punishments, plus a one-click Auto-Punish master switch
- Checks page — left-click a check to enable/disable it, right-click to cycle its sensitivity between Lenient / Normal / Strict (this scales the check's violation threshold live — no restart needed)
- Punishments page — toggle the punishment system on/off, and edit each of the 4 escalation stages: left-click cycles the action (Warn → Kick → Temp-ban → Ban), right-click adjusts temp-ban duration in 5-minute steps (shift-right to decrease)
Fly — flags sustained hovering that isn't explained by any legitimate cause. Exempts: creative/spectator, /fly, elytra (plus a 1s grace window right after closing your wings), vehicles, swimming, Levitation, Slow Falling, and a short grace period after any teleport/knockback/damage.
Speed — computes an expected speed ceiling from sprinting, Speed potion tiers, and ice, then only flags real excess over that with a generous tolerance multiplier.
Scaffold — scores four independent signals (fast placement rate, unnaturally consistent rotation, not sneaking + not looking down, high movement speed) and only flags when at least 3 of the 4 line up together. A legitimate fast bridger who does even one of those things normally (glances down, sneaks at an edge, has natural timing jitter) stays clean.
NoFall — tracks real fall distance and expects fall damage on any drop over 3 blocks. Exempts elytra/gliding at any point in the fall, Slow Falling, Feather Falling boots at any level, and landing in water, lava, slime, cobweb, hay bales, vines, ladders, scaffolding, powder snow, sweet berry bush, and big dripleaf — covers essentially every legitimate MLG.
Reach — pure distance check with generous latency slack on top of vanilla's ~3-block survival reach.
Hitbox — ray-traces the attacker's exact look vector against the target's real (padded) bounding box, catching hits that shouldn't register even when reach and angle look fine on their own.
Aim — three independent, differently-triggered modes:
- Snap-aim — a near-instant large rotation jump right at the moment of an attack
- Constant-tracking — near-zero aim error sustained on a moving target for almost a full second (staring at something stationary never counts)
- Blatant — raw single-tick rotation speed that's not achievable with a mouse, regardless of context
BadPackets — catches non-finite/NaN packet values, out-of-range pitch, and sustained (not single-burst) packet-rate anomalies indicating timer hacks. Explicitly designed to ignore normal post-lag-spike packet bursts.
Automatic Punishment System
Every confirmed violation (already past each check's own filtering above) adds to a persistent offense counter per player, stored in punishments.yml — survives relogs and server restarts. The default ladder:
Code (Text):
Offense 1 -> Warn
Offense 3 -> Kick
Offense 5 -> Temp-ban (10 minutes)
Offense 8 -> Permanent ban
Recommended Setup
- Install and leave punishments.enabled: false
- Play normally / have staff play normally for a few sessions with raven.notify on, watching for any flags on legitimate play
- Adjust sensitivity per-check from the GUI if anything trips that shouldn't
- Once satisfied, flip Auto-Punish on from the main menu
Code (Text):
general:
alert-permission: raven.notify
punishments:
enabled: false
stages:
- offenses: 1
action: WARN
- offenses: 3
action: KICK
- offenses: 5
action: TEMPBAN
duration-minutes: 10
- offenses: 8
action: BAN
checks:
<check-name>:
enabled: true
vl-threshold: <number>
decay-seconds: <number>
- Ban storage uses Bukkit's built-in name-based ban list, not a UUID-based ban system
- Packet field indices in the ProtocolLib listener target 1.20.4-era mappings — a major Minecraft/ProtocolLib version bump may require re-checking those indices
- No web-based dashboard or cross-server sync (single-server, standalone by design)
Support
Found a false positive or a bug? Open a resource discussion post below or DM me @ShadowCraftedIV include your server version, the check that fired, and what the player was doing.
Found a false positive or a bug? Open a resource discussion post below or DM me @ShadowCraftedIV include your server version, the check that fired, and what the player was doing.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.21, 26.1, 26.2
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Raven Anticheat is a free Minecraft Java mod. Compatible with Minecraft 1.21, 26.1, 26.2. Downloaded 4 times (via Spigot). Download it and open it directly in the game.