AntiFly

Flight restriction that does one job properly. Lightweight Bukkit + Fabric plugin/mod by CevAPI.
AntiFly is not a full anti-cheat, and that is deliberate. It is built for servers that want to restrict flight and nothing else - no reach checks, no killaura heuristics, no combat module quietly flagging your players at 3am. What you get instead is flight control accurate enough to leave legitimate movement alone.
Why AntiFly
- It never trusts the client. Ground and support are verified server-side. A client claiming
onGroundcannot talk its way past a check. - Layered detection, not one threshold. Buffered air, hover and anti-kick suspicion sit alongside a sustained-air backstop, so slow level flight and gentle bobbing are caught - not just obvious speed hacks.
- Setbacks nobody complains about. Players are corrected to their last known valid support instead of being yanked out of the sky mid-air.
- Elytra handled properly. A trajectory verifier predicts the next vanilla glide step from pitch, yaw and prior velocity, then weighs residual motion, excess energy, unnaturally constant speed and impossible turns - and only acts when several channels agree. Rocket boosts, steep dives, pull-ups and obstacle crashes are all left alone.
- Teleport-aware.
/tp, ender pearls, chorus fruit and portals are rebased rather than mistaken for flight, so legitimate travel never rubber-bands. - It does not advertise itself. The root command is permission-gated on both platforms so clients that probe a server's command list with suggestion packets get nothing back.
- One shared codebase. The same checks run on Paper and Fabric, so a detection is never fixed on one platform and forgotten on the other.
Hunger Mode
Hard blocks are not always what a survival server wants. /antifly hungermode on replaces them with a penalty that fits the game:
- Food drains first, scaling with speed and never falling below a minimum while airborne - so an idle hoverer still pays.
- Then health, once the flight has lasted long enough (or the player is already starving). Damage ticks slowly, so a landing attempt is always survivable.
- Vanilla gliding and rockets stay free unless the movement shows genuine exploit evidence.
The upshot: no rubber-banding, no teleport-loop complaints, and an economy that discourages flight naturally instead of a wall that just frustrates players.
Void access - new in 1.1.4
A bonus toggle for servers that want to close off the void as well. /antifly voidaccess off covers the Nether roof (Y ≥ 128), the void below the Nether and the void below the Overworld.
- With Hunger Mode off, players who enter are returned to their last safe position, including while mounted.
- With Hunger Mode on, entry is allowed but costs health directly - one hit on entry, then once per second while they stay. The usual hunger phase is skipped here, and exempt players are spared.
Platforms
- Bukkit family: 1.21.x - 26.3 (Bukkit, Spigot, Paper, Purpur, Folia)
- Fabric: 1.21.11 / 26.1.2 / 26.2 / 26.3
Server compatibility
The Paper build is compiled once against the oldest supported API (1.21.1) so a single jar runs on every Bukkit-family server from 1.21.x up to 26.3. Every build re-verifies that the sources still link against the oldest Paper API, the newest Paper API, and plain Spigot/Bukkit:
./gradlew :paper:checkPaperApiCompatibility
Anything that only exists on some servers is probed at runtime and falls back to plain Bukkit:
- region schedulers (Paper/Purpur/Folia) with a Bukkit scheduler fallback
- Folia entity scheduling so Hunger Mode health changes run on the thread that owns the player
Entity#isInLava()with a block probe fallback- the Adventure action bar (Paper family); servers without it simply show no debug action bar
Install
- Bukkit family: drop the jar into
plugins/ - Fabric: drop the jar into
mods/
Commands
The same set on Paper and Fabric. Requires op or antifly.admin on Paper, moderator-level permissions on Fabric.
/antifly enable|disable|status|help/antifly hungermode <on|off>- swap hard blocks for the hunger and health penalty/antifly voidaccess <on|off>- allow or block the void (default on)/antifly alerts <off|game|console|both>- where violation alerts are delivered/antifly reload- re-read the config from disk, no restart needed/antifly set- list every tunable key with its current value
Also available: /antifly set <key> [value], /antifly debug, /antifly exempt / unexempt, /antifly reset and /antifly disabledworlds. The full command reference is in CONFIGURATION.md.
Configuration
Every check is tunable at runtime with /antifly set <key> <value>. Changes apply instantly and auto-save, so there is no restart and no file editing.
Defaults are chosen to stay forgiving of vanilla movement - sprinting, Depth Strider, Dolphin's Grace, Speed potions, wind charges, knockback and rockets are all expected and unpunished - so the common case really is "install it and leave it alone".
- Paper / Bukkit:
plugins/AntiFly/config.yml - Fabric:
config/antifly.json
CONFIGURATION.md documents every key and its default, the full command reference, the Elytra trajectory verifier in depth, Hunger Mode and void tuning, and which keys are platform-specific.
Permissions (Paper)
antifly.admin(default: op) ·antifly.alerts(default: op)
License
GNU General Public License v3.0
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
|
R
1.1.5
|
15h ago | 1 | |||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
|
R
1.1.3
|
15h ago | 1 | |||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
|
R
1.1.2
|
15h ago | 1 | |||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 | ||||
| 15h ago | 1 |
- Updated detection for hunger mode
- Updated detection for hunger mode
- Updated detection for hunger mode
- Updated detection for hunger mode
- Updated detection for hunger mode
- Added support for Minecraft 26.3 - a new Fabric build target, plus Paper/Spigot
- Consolidated the Fabric targets into one shared source tree, so all four versions
- New
/antifly voidaccesstoggle: blocks the Nether roof (Y >= 128) and the void
- Added a vanilla glide-physics verifier for Elytra hacks, which leaves rocket
- Reduced false flight flags from potions (Depth Strider, Dolphin's Grace, Speed),
- Fixed Fabric players in boats being flagged on enter, exit and dismount.
- Added adjustable verifier settings and an observe-only mode
/antifly set elytraVerifierMode observe) for tuning without setbacks.- Added movement tests and improved Folia scheduling compatibility.
- Added support for Minecraft 26.3 - a new Fabric build target, plus Paper/Spigot
- Consolidated the Fabric targets into one shared source tree, so all four versions
- New
/antifly voidaccesstoggle: blocks the Nether roof (Y >= 128) and the void
- Added a vanilla glide-physics verifier for Elytra hacks, which leaves rocket
- Reduced false flight flags from potions (Depth Strider, Dolphin's Grace, Speed),
- Fixed Fabric players in boats being flagged on enter, exit and dismount.
- Added adjustable verifier settings and an observe-only mode
/antifly set elytraVerifierMode observe) for tuning without setbacks.- Added movement tests and improved Folia scheduling compatibility.
- Added support for Minecraft 26.3 - a new Fabric build target, plus Paper/Spigot
- Consolidated the Fabric targets into one shared source tree, so all four versions
- New
/antifly voidaccesstoggle: blocks the Nether roof (Y >= 128) and the void
- Added a vanilla glide-physics verifier for Elytra hacks, which leaves rocket
- Reduced false flight flags from potions (Depth Strider, Dolphin's Grace, Speed),
- Fixed Fabric players in boats being flagged on enter, exit and dismount.
- Added adjustable verifier settings and an observe-only mode
/antifly set elytraVerifierMode observe) for tuning without setbacks.- Added movement tests and improved Folia scheduling compatibility.
- Added support for Minecraft 26.3 - a new Fabric build target, plus Paper/Spigot
- Consolidated the Fabric targets into one shared source tree, so all four versions
- New
/antifly voidaccesstoggle: blocks the Nether roof (Y >= 128) and the void
- Added a vanilla glide-physics verifier for Elytra hacks, which leaves rocket
- Reduced false flight flags from potions (Depth Strider, Dolphin's Grace, Speed),
- Fixed Fabric players in boats being flagged on enter, exit and dismount.
- Added adjustable verifier settings and an observe-only mode
/antifly set elytraVerifierMode observe) for tuning without setbacks.- Added movement tests and improved Folia scheduling compatibility.
- Added support for Minecraft 26.3 - a new Fabric build target, plus Paper/Spigot
- Consolidated the Fabric targets into one shared source tree, so all four versions
- New
/antifly voidaccesstoggle: blocks the Nether roof (Y >= 128) and the void
- Added a vanilla glide-physics verifier for Elytra hacks, which leaves rocket
- Reduced false flight flags from potions (Depth Strider, Dolphin's Grace, Speed),
- Fixed Fabric players in boats being flagged on enter, exit and dismount.
- Added adjustable verifier settings and an observe-only mode
/antifly set elytraVerifierMode observe) for tuning without setbacks.- Added movement tests and improved Folia scheduling compatibility.
- Hunger Mode now tracks accepted flight movement reliably and drains food continuously.
- Hovering has a visible baseline hunger cost; landing immediately clears queued hunger and flight penalties.
- At zero food, flight damage starts immediately and deals one full heart per tick with the default
flightDamagePerSecond: 1.0. /antifly setsupports value lookup, dotted/short setting keys, and accurate unknown-key errors./antifly statusnow shows complete tuning values.- Improved Elytra checks and teleport handling.
- Expanded live configuration controls and status visibility.
- Fixed Hunger Mode flight, hover, landing, and starvation escalation behaviour.
- Hunger Mode now tracks accepted flight movement reliably and drains food continuously.
- Hovering has a visible baseline hunger cost; landing immediately clears queued hunger and flight penalties.
- At zero food, flight damage starts immediately and deals one full heart per tick with the default
flightDamagePerSecond: 1.0. /antifly setsupports value lookup, dotted/short setting keys, and accurate unknown-key errors./antifly statusnow shows complete tuning values.- Improved Elytra checks and teleport handling.
- Expanded live configuration controls and status visibility.
- Fixed Hunger Mode flight, hover, landing, and starvation escalation behaviour.
- Hunger Mode now tracks accepted flight movement reliably and drains food continuously.
- Hovering has a visible baseline hunger cost; landing immediately clears queued hunger and flight penalties.
- At zero food, flight damage starts immediately and deals one full heart per tick with the default
flightDamagePerSecond: 1.0. /antifly setsupports value lookup, dotted/short setting keys, and accurate unknown-key errors./antifly statusnow shows complete tuning values.- Improved Elytra checks and teleport handling.
- Expanded live configuration controls and status visibility.
- Fixed Hunger Mode flight, hover, landing, and starvation escalation behaviour.
- Hunger Mode now tracks accepted flight movement reliably and drains food continuously.
- Hovering has a visible baseline hunger cost; landing immediately clears queued hunger and flight penalties.
- At zero food, flight damage starts immediately and deals one full heart per tick with the default
flightDamagePerSecond: 1.0. /antifly setsupports value lookup, dotted/short setting keys, and accurate unknown-key errors./antifly statusnow shows complete tuning values.- Improved Elytra checks and teleport handling.
- Expanded live configuration controls and status visibility.
- Fixed Hunger Mode flight, hover, landing, and starvation escalation behaviour.
- /antifly hungermode <on|off> - replaces hard blocks with a food/health tax
- Food drain scales with speed (cap 200 BPS = 10 food/s); hovering always drains slowly, even floating still in the sky - client onGround spoofing can't bypass it
- Health damage kicks in after sustained flight, only after hunger has been draining (elytra: 30s of active drain; others: 20s). Ticks every 2s (4s while descending), so landing is always survivable
- Rockets reset the damage timer with elytra flight.
- Checks only block what vanilla can't do: sustained speed >6 b/t, instant climbs >4 b/t, stall-hovering. Dives, pull-ups, rocket boosts and crashes are all allowed
- Only punished when exploiting: speed >50 BPS, hover-hack, or gliding 45s without a rocket. Vanilla gliding with rockets = free
- Teleports (pearls, chorus, portals, /tp, plugin warps) no longer trigger setbacks; plugged a teleport-fly exploit
- New sustained-air check: airborne 7.5s without support → rubber-banded
- Ground walk default raised to 0.67
- /antifly set <key> <value> - hunger rate, hover floor, elytra thresholds, flight damage timing, sustained-air limit. Lists values too.
- /antifly hungermode <on|off> - replaces hard blocks with a food/health tax
- Food drain scales with speed (cap 200 BPS = 10 food/s); hovering always drains slowly, even floating still in the sky - client onGround spoofing can't bypass it
- Health damage kicks in after sustained flight, only after hunger has been draining (elytra: 30s of active drain; others: 20s). Ticks every 2s (4s while descending), so landing is always survivable
- Rockets reset the damage timer with elytra flight.
- Checks only block what vanilla can't do: sustained speed >6 b/t, instant climbs >4 b/t, stall-hovering. Dives, pull-ups, rocket boosts and crashes are all allowed
- Only punished when exploiting: speed >50 BPS, hover-hack, or gliding 45s without a rocket. Vanilla gliding with rockets = free
- Teleports (pearls, chorus, portals, /tp, plugin warps) no longer trigger setbacks; plugged a teleport-fly exploit
- New sustained-air check: airborne 7.5s without support → rubber-banded
- Ground walk default raised to 0.67
- /antifly set <key> <value> - hunger rate, hover floor, elytra thresholds, flight damage timing, sustained-air limit. Lists values too.
- /antifly hungermode <on|off> - replaces hard blocks with a food/health tax
- Food drain scales with speed (cap 200 BPS = 10 food/s); hovering always drains slowly, even floating still in the sky - client onGround spoofing can't bypass it
- Health damage kicks in after sustained flight, only after hunger has been draining (elytra: 30s of active drain; others: 20s). Ticks every 2s (4s while descending), so landing is always survivable
- Rockets reset the damage timer with elytra flight.
- Checks only block what vanilla can't do: sustained speed >6 b/t, instant climbs >4 b/t, stall-hovering. Dives, pull-ups, rocket boosts and crashes are all allowed
- Only punished when exploiting: speed >50 BPS, hover-hack, or gliding 45s without a rocket. Vanilla gliding with rockets = free
- Teleports (pearls, chorus, portals, /tp, plugin warps) no longer trigger setbacks; plugged a teleport-fly exploit
- New sustained-air check: airborne 7.5s without support → rubber-banded
- Ground walk default raised to 0.67
- /antifly set <key> <value> - hunger rate, hover floor, elytra thresholds, flight damage timing, sustained-air limit. Lists values too.
- /antifly hungermode <on|off> - replaces hard blocks with a food/health tax
- Food drain scales with speed (cap 200 BPS = 10 food/s); hovering always drains slowly, even floating still in the sky - client onGround spoofing can't bypass it
- Health damage kicks in after sustained flight, only after hunger has been draining (elytra: 30s of active drain; others: 20s). Ticks every 2s (4s while descending), so landing is always survivable
- Rockets reset the damage timer with elytra flight.
- Checks only block what vanilla can't do: sustained speed >6 b/t, instant climbs >4 b/t, stall-hovering. Dives, pull-ups, rocket boosts and crashes are all allowed
- Only punished when exploiting: speed >50 BPS, hover-hack, or gliding 45s without a rocket. Vanilla gliding with rockets = free
- Teleports (pearls, chorus, portals, /tp, plugin warps) no longer trigger setbacks; plugged a teleport-fly exploit
- New sustained-air check: airborne 7.5s without support → rubber-banded
- Ground walk default raised to 0.67
- /antifly set <key> <value> - hunger rate, hover floor, elytra thresholds, flight damage timing, sustained-air limit. Lists values too.
- Added
ground_spoof_speeddetection for fast movement while the client reports airborne. - Restricted landing grace to players who were genuinely gliding.
- Prevented repeated ground/air transitions from continually refreshing elytra grace.
- Added sustained flat-flight detection after 12 air ticks.
- Flat cruise detection triggers at horizontal movement ≥
0.45. - Removed the requirement for hover detection to have near-zero horizontal movement, catching moving hover flight.
- Added
air_planereason-to-setting mapping for Fabric logs. - Added case-insensitive canonical setting-key handling.
- Improved normalization for keys such as:
groundWalkMaxgroundMountedMaxwaterMaxwaterVerticalMax
- Added
ground_spoof_speeddetection for fast movement while the client reports airborne. - Restricted landing grace to players who were genuinely gliding.
- Prevented repeated ground/air transitions from continually refreshing elytra grace.
- Added sustained flat-flight detection after 12 air ticks.
- Flat cruise detection triggers at horizontal movement ≥
0.45. - Removed the requirement for hover detection to have near-zero horizontal movement, catching moving hover flight.
- Added
air_planereason-to-setting mapping for Fabric logs. - Added case-insensitive canonical setting-key handling.
- Improved normalization for keys such as:
groundWalkMaxgroundMountedMaxwaterMaxwaterVerticalMax
- Added
ground_spoof_speeddetection for fast movement while the client reports airborne. - Restricted landing grace to players who were genuinely gliding.
- Prevented repeated ground/air transitions from continually refreshing elytra grace.
- Added sustained flat-flight detection after 12 air ticks.
- Flat cruise detection triggers at horizontal movement ≥
0.45. - Removed the requirement for hover detection to have near-zero horizontal movement, catching moving hover flight.
- Added
air_planereason-to-setting mapping for Fabric logs. - Added case-insensitive canonical setting-key handling.
- Improved normalization for keys such as:
groundWalkMaxgroundMountedMaxwaterMaxwaterVerticalMax
- Added
ground_spoof_speeddetection for fast movement while the client reports airborne. - Restricted landing grace to players who were genuinely gliding.
- Prevented repeated ground/air transitions from continually refreshing elytra grace.
- Added sustained flat-flight detection after 12 air ticks.
- Flat cruise detection triggers at horizontal movement ≥
0.45. - Removed the requirement for hover detection to have near-zero horizontal movement, catching moving hover flight.
- Added
air_planereason-to-setting mapping for Fabric logs. - Added case-insensitive canonical setting-key handling.
- Improved normalization for keys such as:
groundWalkMaxgroundMountedMaxwaterMaxwaterVerticalMax
- Added Fabric support for Minecraft 1.21.11, 26.1.2, and 26.2.
- Added dedicated Fabric builds and version-specific mod metadata.
- Added Folia support for the Paper plugin.
- Improved ground detection on slabs, beds, half-blocks, and other partial blocks.
- Fixed boat flight and hovering over ledges/cliffs.
- Added boat horizontal speed limits and natural falling behavior.
- Added vehicle, boat, and horse air-grace settings.
- Improved Elytra checks for rockets, ascent, descent, pull-ups, stalls, and slowdowns.
- Added Elytra durability validation with movement-based suspicion handling.
- Added world-specific disable controls.
- Added /antifly disabledworlds.
- Expanded /antifly set configuration options and legacy aliases.
- Improved status output and debug telemetry.
- Improved setback handling and false-positive protection.
- Updated Gradle and Loom tooling for Fabric 26.2.
- Added Fabric support for Minecraft 1.21.11, 26.1.2, and 26.2.
- Added dedicated Fabric builds and version-specific mod metadata.
- Added Folia support for the Paper plugin.
- Improved ground detection on slabs, beds, half-blocks, and other partial blocks.
- Fixed boat flight and hovering over ledges/cliffs.
- Added boat horizontal speed limits and natural falling behavior.
- Added vehicle, boat, and horse air-grace settings.
- Improved Elytra checks for rockets, ascent, descent, pull-ups, stalls, and slowdowns.
- Added Elytra durability validation with movement-based suspicion handling.
- Added world-specific disable controls.
- Added /antifly disabledworlds.
- Expanded /antifly set configuration options and legacy aliases.
- Improved status output and debug telemetry.
- Improved setback handling and false-positive protection.
- Updated Gradle and Loom tooling for Fabric 26.2.
- Added Fabric support for Minecraft 1.21.11, 26.1.2, and 26.2.
- Added dedicated Fabric builds and version-specific mod metadata.
- Added Folia support for the Paper plugin.
- Improved ground detection on slabs, beds, half-blocks, and other partial blocks.
- Fixed boat flight and hovering over ledges/cliffs.
- Added boat horizontal speed limits and natural falling behavior.
- Added vehicle, boat, and horse air-grace settings.
- Improved Elytra checks for rockets, ascent, descent, pull-ups, stalls, and slowdowns.
- Added Elytra durability validation with movement-based suspicion handling.
- Added world-specific disable controls.
- Added /antifly disabledworlds.
- Expanded /antifly set configuration options and legacy aliases.
- Improved status output and debug telemetry.
- Improved setback handling and false-positive protection.
- Updated Gradle and Loom tooling for Fabric 26.2.
- Added Fabric support for Minecraft 1.21.11, 26.1.2, and 26.2.
- Added dedicated Fabric builds and version-specific mod metadata.
- Added Folia support for the Paper plugin.
- Improved ground detection on slabs, beds, half-blocks, and other partial blocks.
- Fixed boat flight and hovering over ledges/cliffs.
- Added boat horizontal speed limits and natural falling behavior.
- Added vehicle, boat, and horse air-grace settings.
- Improved Elytra checks for rockets, ascent, descent, pull-ups, stalls, and slowdowns.
- Added Elytra durability validation with movement-based suspicion handling.
- Added world-specific disable controls.
- Added /antifly disabledworlds.
- Expanded /antifly set configuration options and legacy aliases.
- Improved status output and debug telemetry.
- Improved setback handling and false-positive protection.
- Updated Gradle and Loom tooling for Fabric 26.2.
- Fixed false flags when walking on beds & other half-height blocks
- Able to disable Antifly per world
- Hover detection no longer false-flags slow-fall effects
- New tuneables: elytraMaxRocketHorizontal, elytraMaxRocketUp, elytraNoRocketSustainableHorizontal, elytraMaxNoRocketUp
- Fixed false flags when walking on beds & other half-height blocks
- Able to disable Antifly per world
- Hover detection no longer false-flags slow-fall effects
- New tuneables: elytraMaxRocketHorizontal, elytraMaxRocketUp, elytraNoRocketSustainableHorizontal, elytraMaxNoRocketUp
- Fixed false flags when walking on beds & other half-height blocks
- Able to disable Antifly per world
- Hover detection no longer false-flags slow-fall effects
- New tuneables: elytraMaxRocketHorizontal, elytraMaxRocketUp, elytraNoRocketSustainableHorizontal, elytraMaxNoRocketUp
1.21.11 likely won't continue for Fabric, but stay tuned.