README.md

July 16, 2026 ยท View on GitHub

Windfall Anti-Cheat Banner

Windfall ๐Ÿ‡น๐Ÿ‡ท Proudly Made in Turkey

โš”๏ธ Windfall Anti-Cheat F

Enterprise-grade packet-based anti-cheat for Minecraft 1.7 โ€“ 26.2+
Fabric ยท ViaVersion ยท Geyser

Build Status Release License Java 17+ Minecraft


Overview

Windfall intercepts incoming packets via Fabric Mixins and evaluates player behaviour against a configurable set of checks. A single JAR works across every supported server version โ€” no separate builds required.

55 checks across 4 categories, with a 5-layer compatibility system that adapts detection thresholds per-player based on protocol version, installed mods, and Bedrock status.

Public API available via WindfallAPI for external mods to query player data, violation levels, and check status.


Checks

Combat โ€” 12 checks
CheckDescription
AimInstant-snap and yaw/pitch variance ratio detection
AutoclickerStandard deviation-based click pattern analysis
BacktrackMovement-to-attack timing gap detection
CriticalsVanilla crit-hit motion requirement validation
Fast HealFrequency-based and spike-based food consumption detection
HitboxesLook-vector projection and hit-ratio analysis
Kill AuraMulti-aura and rotation symmetry detection
MacroMovement pattern repetition detection
Multi InteractMulti-entity-per-tick detection
ReachAABB-to-eye distance measurement with lag compensation
Self InteractSelf-targeting packet detection
Sword BlockBlock+attack timing abuse (1.7โ€“1.8)
Movement โ€” 31 checks
CheckDescription
Air Liquid BreakBreaking blocks while falling through air/liquid
Air Liquid PlacePlacing blocks while falling through air/liquid
BaritoneAutomated pathfinding: straight lines + constant speed
ElytraIllegal elytra flight: speed, hover, kick-boost, ascent
Far BreakBreaking blocks beyond vanilla reach
Far PlacePlacing blocks beyond vanilla reach
Fast BreakBreaking blocks faster than vanilla break times
FlightVertical velocity prediction and hover detection
GravityVanilla gravity cycle validation: (deltaY - 0.08) * 0.98
Ground SpoofServer-side ground state validation
Illegal MoveSprint disabler: non-sprint speed exceeding vanilla limits
Invalid BreakBreaking air or indestructible blocks
Invalid PlacePlacing blocks in invalid positions
MotionGeneral motion anomaly detection
Multi BreakMultiple START_DIGGING packets per tick
Multi PlaceMultiple block placements per tick
NoFallMissing or incorrect fall packets
NoSlowBypassing item-use movement slowdown
No SwingMissing arm-swing animation on block interactions
PhaseWall clipping / phase detection
Position BreakSquared-distance reach validation
Position PlaceSquared-distance placement validation
Rotation BreakExcessive view rotation during block break
Rotation PlaceExcessive view rotation during block place
ScaffoldAutomated block placement (tower/bridge)
SimulationFull movement simulation comparison
SpeedHorizontal acceleration prediction
StepStep-up height validation
TimerClient tick rate manipulation
VelocityKnockback velocity validation
Wrong BreakBreaking blocks at wrong positions
Packet โ€” 11 checks
CheckDescription
Bad PacketsInvalid packet structure and field values
ChatChat message rate and pattern analysis
Chest StealerAbnormal chest inventory interaction speed
Client BrandClient modification detection via brand string
CrashOversized packets and creative exploits
CreativeCreative mode validation and rate limiting
ExploitKnown exploit packet detection
Packet OrderInvalid packet sequence and burst detection
SprintImpossible sprint state changes
TransactionTransaction/keepalive ping measurement
VehicleVehicle interaction exploit detection
Inventory โ€” 1 check
CheckDescription
InventoryAbnormal inventory interaction patterns

5-Layer Compatibility System

Windfall adapts checks across all supported MC versions and mods through five layers:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  1. Version Range         minVersion / maxVersion           โ”‚
โ”‚  2. Mod Detection         ViaVersion / Geyser / OCM        โ”‚
โ”‚  3. Player Profile        Protocol / Bedrock / Via gap      โ”‚
โ”‚  4. Config Override       Manual disable per check          โ”‚
โ”‚  5. Tolerance Multipliers Bedrock + Version gap combined    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
LayerMechanism
Version RangeminVersion / maxVersion โ€” checks only load when the server protocol is in range
Mod DetectionModDetector finds ViaVersion, ViaBackwards, Geyser, OldCombatMechanics at startup
Player ProfilePer-player: protocol version, Bedrock status, ViaVersion version gap โ†’ tolerance multipliers applied
Config OverrideServer admins can manually disable any check via config
Tolerance MultipliersCombined Bedrock + version gap multipliers applied to detection thresholds

Checks declare @CheckData(compat = {...}) flags (e.g. VIAVERSION_SENSITIVE, GEYSEIR_SENSITIVE) that control whether the check is disabled or relaxed (higher thresholds) when conditions don't match.


Requirements

RequirementVersion
Java17+
Minecraft Server1.21.5+ (Fabric)
Fabric Loader0.16.0+
Fabric APILatest

Installation

  1. Build with Gradle:
./gradlew build
  1. Install โ€” place the JAR in mods/:

    • build/libs/windfall-fabric-<version>.jar
  2. Optional dependencies (auto-detected):

    • ViaVersion โ€” per-player protocol adaptation
    • ViaBackwards โ€” backward protocol translation
    • Geyser / Floodgate โ€” Bedrock player detection
    • OldCombatMechanics โ€” 1.8 combat emulation
  3. Restart the server.


Commands

CommandAliasDescription
/windfall help/wf, /wfallShow help
/windfall reloadReload configuration
/windfall toggle <check>Enable / disable a check
/windfall alertsToggle alert delivery

Configuration

On first run Windfall generates config/windfall-fabric/config.yml. All checks, thresholds, punishment settings, and Discord webhook URLs can be customised there. Use /windfall reload to apply changes without restarting.


Platform Compatibility

PlatformStatusNotes
Fabric 1.21.5+SupportedBase compatibility via Mixins
ViaVersionSupportedPer-player protocol adaptation
ViaBackwardsSupportedBackward protocol translation
Geyser / FloodgateSupportedBedrock-specific movement tolerances
OldCombatMechanicsSupported1.8 combat emulation awareness

Architecture

windfall/
โ”œโ”€โ”€ api/                   # Public API (WindfallAPI, WindfallProvider, PlayerData)
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ check/           # Check registration, base classes, @CheckData
โ”‚   โ”‚   โ””โ”€โ”€ impl/
โ”‚   โ”‚       โ”œโ”€โ”€ combat/      # 12 combat checks
โ”‚   โ”‚       โ”œโ”€โ”€ movement/    # 29 movement checks
โ”‚   โ”‚       โ”œโ”€โ”€ packet/      # 11 packet checks
โ”‚   โ”‚       โ””โ”€โ”€ inventory/   # 1 inventory check
โ”‚   โ”œโ”€โ”€ physics/         # Prediction engine, physics constants, version branching
โ”‚   โ”œโ”€โ”€ player/          # WindfallPlayer state, PlayerManager, PlayerProfile, ActionData
โ”‚   โ”œโ”€โ”€ network/         # PacketListener, Mixin packet interception
โ”‚   โ”œโ”€โ”€ config/          # WindfallConfig, config.yml parsing
โ”‚   โ”œโ”€โ”€ punishment/      # PunishmentEngine (warn โ†’ kick โ†’ ban)
โ”‚   โ”œโ”€โ”€ severity/        # SeverityManager, VL escalation
โ”‚   โ”œโ”€โ”€ alert/           # AlertManager, Discord webhook
โ”‚   โ”œโ”€โ”€ bedrock/         # Geyser detection, BedrockInfo
โ”‚   โ”œโ”€โ”€ plugin/          # ModDetector (ViaVersion, Geyser, OCM)
โ”‚   โ”œโ”€โ”€ compensation/    # TransactionManager, PingPongManager, SimulationEngine
โ”‚   โ”œโ”€โ”€ fingerprint/     # PacketFingerprint, AdaptiveThreshold
โ”‚   โ”œโ”€โ”€ metrics/         # WindfallPrometheus (Prometheus metrics)
โ”‚   โ””โ”€โ”€ util/            # MaterialUtils, MathUtil
โ”œโ”€โ”€ mixin/               # Mixin classes for packet interception
โ””โ”€โ”€ WindfallMod.java     # Mod entry point

Public API

Windfall exposes a public API for external mods:

import io.windfall.anticheat.api.WindfallAPI;
import io.windfall.anticheat.api.WindfallProvider;
import io.windfall.anticheat.api.PlayerData;

// Get API instance
WindfallAPI api = WindfallProvider.getApi();

// Query player data
PlayerData data = api.getPlayerData(player.getUuid());
if (data != null) {
    int vl = data.getViolationLevel("windfall.combat.killaura");
    boolean flagged = data.isFlagged();
}

API Features

  • PlayerData: Immutable snapshot of player state (VLs, flagged status, check states)
  • WindfallAPI: Query player data, check statuses, and plugin information
  • Thread-safe: All operations are safe for async access

Building from Source

git clone https://github.com/enis1enis2/WindfallAntiCheatF.git
cd WindfallAntiCheatF
./gradlew build

Requires JDK 17+ and Gradle 9.6+.


Credits

Windfall's architecture draws inspiration from several open-source anti-cheat projects. Huge respect to their authors for pioneering these patterns in the community:

  • ArrowAntiCheat by StelGR โ€” foundational check framework, @CheckData annotation system, and packet-based detection patterns that Windfall's check registration is built on
  • GrimAC by GrimAnticheat โ€” movement prediction engine, physics constants (gravity, drag, friction), and the vertical/horizontal delta validation model used across Windfall's movement checks
  • TruthfulAC by TawnyE โ€” per-player state isolation pattern, buffer escalation mechanics, and the decay-based violation level system

If you're building your own anti-cheat, these projects are excellent references for understanding how modern packet-level detection works.


Contributing

We welcome contributions! Whether it's a bug fix, a new check, or documentation improvement โ€” we'd love your help.


License

MIT License โ€” Copyright (c) 2026 Enis Polat

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.