{"id":59494,"date":"2026-06-03T09:15:39","date_gmt":"2026-06-03T06:15:39","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/"},"modified":"2026-06-03T09:15:39","modified_gmt":"2026-06-03T06:15:39","slug":"duckyac","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/","title":{"rendered":"DuckyAC"},"content":{"rendered":"<p># \ud83e\udd86 DuckyAC<\/p>\n<p>**DuckyAC** is a lightweight, modular, and fully configurable anti-cheat plugin for Spigot\/Paper Minecraft servers.<br \/>\nIt detects unnatural player behavior in block placing, movement, and other interactions to effectively prevent cheating.<\/p>\n<p>> \u2705 **Recommended**: Use **DuckyAC** in combination with **Vulcan** and **GrimAC** for maximum cheat detection coverage.<\/p>\n<p>&#8212;<\/p>\n<p>## \u2699\ufe0f Features<\/p>\n<p>&#8211; \ud83d\udd0d **Checks List**:<br \/>\n  &#8211; `AirJumpA`: Detects Jumping in air<br \/>\n  &#8211; `AirPlaceA`: Detects when player are building midair<br \/>\n  &#8211; `AutoTotemA`: Detects suspicious totem planting (beta check)<br \/>\n  &#8211; `AutoTrapA`: Detects suspicious trap placing<br \/>\n  &#8211; `BadPacketsA`: Detects abnormal yaw\/pitch ratio (aim step \/ packet manipulation)<br \/>\n  &#8211; `ElytraAimA`: Player was detected to be hitting too fast while flying an elytra<br \/>\n  &#8211; `ElytraCriticalsA`: Detects when a player deals too much critical damage while flying an elytra in too short a time<br \/>\n  &#8211; `GroundSpoofA`: Detects when player is sending false information about his position<br \/>\n  &#8211; `FastClimbA-B`: Detects to fast player climbing on ladder, vines etc.<br \/>\n  &#8211; `FastPlaceA`: Detects when a player places too many blocks at a time<br \/>\n  &#8211; `FlyA`: Detects when player is flying *basic fly*<br \/>\n  &#8211; `InvalidPlaceA`: Detects when a player has placed a block at the wrong angle<br \/>\n  &#8211; `NoSlowDownA-G`: Many features of the player walking too fast during certain activities<br \/>\n  &#8211; `NoWebA`: Detects player movement that is too fast while in a web<br \/>\n  &#8211; `ReachA-B`: Detects when player is interacting with entities\/blocks to far away his distance<br \/>\n  &#8211; `ThruBlocksA-B`: Detects when a player hits another player through a wall<br \/>\n  &#8211; `TimerA-D`: Detects when a player sends too many packets<br \/>\n&#8211; \ud83d\udcc9 Violation Level (VL) system for tracking repeated offenses<br \/>\n&#8211; \ud83d\udd27 Fully configurable thresholds, punishments, and enabled checks<br \/>\n&#8211; \ud83d\udee1 Permission-based bypass support (e.g., for admins)<br \/>\n&#8211; \ud83d\udd14 Alerts in chat and console to authorized staff (`duckyac.alerts`)<br \/>\n&#8211; \ud83d\udce9 Discord webhook support for sending logs and punishments<br \/>\n&#8211; \ud83e\udde0 Config setting caching for performance optimization<br \/>\n&#8211; \ud83d\udd04 Optional command to reload config (`\/duckyac reload`)<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\uddea Sample Configuration (`config.yml`)<\/p>\n<p>&#8220;`yaml<br \/>\n# === DUCKY ANTICHEAT CONFIGURATION ===<br \/>\n# All checks are listed alphabetically. Each check has a short English description above it.<\/p>\n<p># Time after which a player&#8217;s violations reset (in seconds).<br \/>\n# Example: if a player gets 2 reports for a check, after this timeout their counter resets to 0.<br \/>\nalert-timeout: 300<\/p>\n<p># === VIOLATION ALERT MESSAGE TEMPLATE ===<br \/>\n# Message format used when broadcasting alerts to staff \/ console.<br \/>\nalert-message: &#8220;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;fPlayer &#038;7\u00bb&#038;f %player% &#038;7\u00bb&#038;6 %check% &#038;7(&#038;c%vl%VL&#038;7)&#8221;<\/p>\n<p># === CHECKS (alphabetically ordered) ===<\/p>\n<p># AIR JUMP A<br \/>\n# Detects jumping in the air<br \/>\nair-jump-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  ignore-external-velocity: true<br \/>\n  min-upward-velocity-y: 0.25<br \/>\n  detect-pressure-plates: true<br \/>\n  jumppad-plate-grace-ms: 450<br \/>\n  min-horizontal: 0.02<br \/>\n  external-velocity-grace-ms: 700<br \/>\n  vertical-threshold: 0.3<br \/>\n  damage-ignore-millis: 500<br \/>\n  detect-wind-charge: true<br \/>\n  wind-charge-grace-ms: 900<br \/>\n  ignore-potion-boost: false # Keep it false; it&#8217;s a disabling player checking when player has Jump Boost effect<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Unnatural air jump detected (AirJumpA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># AIR PLACE A<br \/>\n# Detects block placements in midair (no supporting blocks nearby).<br \/>\nair-place-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-alerts: 3 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Invalid block placement (AirPlaceA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># AUTO TOTEM A<br \/>\n# Detects extremely fast totem swaps (auto totem macros).<br \/>\nauto-totem-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  min-delay: 150 # Minimum allowed swap interval in ms<br \/>\n  tick-interval: 3<br \/>\n  max-ping: -1<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Too fast totem swap (AutoTotemA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># AUTO TRAP A<br \/>\n# Detects quick enclosing of a player with wood blocks and cobwebs (auto trap macros).<br \/>\nauto-trap-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will cancel the block placement<br \/>\n  max-time: 2000 # Maximum time in milliseconds to detect the trap pattern<br \/>\n  min-blocks: 6 # Minimum wood blocks required to consider it a trap<br \/>\n  max-distance: 5.0 # Maximum distance from the placed block to the nearest player<br \/>\n  max-alerts: 3 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Suspicious auto-trap detected (AutoTrapA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># ELYTRA AIM A<br \/>\n# Detects abnormal aiming\/targeting while using an Elytra (aim assistance).<br \/>\nelytra-aim-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-firework-delay: 200 # Time in milliseconds when a player hits another player a second time within the set time will be reported<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Cheating with Elytra (ElytraAimA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># ELYTRA CRITICALS A<br \/>\n# Detects repeated &#8220;critical&#8221; hits while using Elytra that may indicate cheats.<br \/>\nelytra-criticals-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  critical-hits-required: 3 # The number of critical hits a player can land in a time frame to report the player.<br \/>\n  timeframe: 700 # Timeframe in milliseconds to count critical hits<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Cheating with Elytra (ElytraCriticalsA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># FAST CLIMB A<br \/>\n# Detects unnatural fast ladder\/climb movement.<br \/>\nfast-climb-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-climb-speed: 0.15<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% You climbed too fast (FastClimbA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># FAST PLACE A<br \/>\n# Detects placing blocks too quickly (anti-fast-place).<br \/>\nfast-place-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-per-tick: 4<br \/>\n  max-alerts: 3 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Too fast block placement (FastPlaceA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># FLY A<br \/>\nfly-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  ignore-jump-boost: true<br \/>\n  ping-threshold: 250<br \/>\n  hover-delta: 0.01<br \/>\n  hover-ticks: 15<br \/>\n  ascend-delta: 0.42<br \/>\n  ascend-ticks: 8<br \/>\n  damage-ignore-millis: 1500<br \/>\n  teleport-ignore-millis: 2000<br \/>\n  detect-wind-charge: true<br \/>\n  wind-charge-grace-ms: 900<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Flying (FlyA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># === GROUND SPOOF A ===<br \/>\n# Heuristic check for clients that lie about being &#8220;on ground&#8221;.<br \/>\n# Conservative defaults chosen to minimise false positives.<br \/>\nground-spoof-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  ping-threshold: 300<br \/>\n  check-depth: 3.0<br \/>\n  min-ground-distance: 0.50<br \/>\n  vertical-tolerance: 0.02<br \/>\n  damage-ignore-millis: 300<br \/>\n  teleport-ignore-millis: 500<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Suspected ground spoof (GroundSpoofA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># HITBOX A<br \/>\n# Detects attackers that appear to hit targets outside reasonable hitbox angles\/distances.<br \/>\nhitbox-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-angle: 40.0<br \/>\n  max-distance: 3.5<br \/>\n  max-tolerance: 0.2<br \/>\n  ping-threshold: 300<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Too large hitboxes (HitboxA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># INVALID PLACE A<br \/>\n# Detects block placements with an invalid looking angle (player not plausibly looking at placement).<br \/>\ninvalid-place-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-angle: 50             # Maximum angle allowed between a look direction and placed block<br \/>\n  max-alerts: 3 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Invalid block placement (InvalidPlaceA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># NO WEB A<br \/>\n# Detects suspicious movement while in cobwebs (NoWeb cheats).<br \/>\nno-web-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-alerts: 3 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Suspicious movement in cobwebs (NoWebA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># NO SLOWDOWN B \/ C \/ D<br \/>\n# NoSlowDown checks for different situations (bow, crossbow, shield).<br \/>\nno-slowdown-max-distance: 1.0 # ignore distance used by multiple NoSlowDown checks<\/p>\n<p>no-slowdown-a:<br \/>\n  # Detects walking too fast while eating.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-eating-speed: 0.20<br \/>\n  max-distance: 1.0<br \/>\n  ignored-speeds:<br \/>\n    &#8211; 0.5072<br \/>\n    &#8211; 0.3024<br \/>\n    &#8211; 0.2933<br \/>\n    &#8211; 0.4822<br \/>\n    &#8211; 0.5013<br \/>\n    &#8211; 0.5014<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Player was walking too fast while eating (NoSlowDownA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>no-slowdown-b:<br \/>\n  # Detects walking too fast with a drawn bow.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-bow-speed: 0.20<br \/>\n  ignored-speeds:<br \/>\n    &#8211; 0.5072<br \/>\n    &#8211; 0.3024<br \/>\n    &#8211; 0.2933<br \/>\n    &#8211; 0.4822<br \/>\n    &#8211; 0.5013<br \/>\n    &#8211; 0.5014<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Player was walking too fast with a drawn bow (NoSlowDownB)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>no-slowdown-c:<br \/>\n  # Detects walking too fast while drawing a crossbow.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-speed: 0.20<br \/>\n  ignored-speeds:<br \/>\n    &#8211; 0.5072<br \/>\n    &#8211; 0.3024<br \/>\n    &#8211; 0.2933<br \/>\n    &#8211; 0.4822<br \/>\n    &#8211; 0.5013<br \/>\n    &#8211; 0.5014<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Player walked too fast while drawing the crossbow (NoSlowDownC)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>no-slowdown-d:<br \/>\n  # Detects walking too fast while holding a shield.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-speed: 0.20<br \/>\n  ignored-speeds:<br \/>\n    &#8211; 0.5072<br \/>\n    &#8211; 0.3024<br \/>\n    &#8211; 0.2933<br \/>\n    &#8211; 0.4822<br \/>\n    &#8211; 0.5013<br \/>\n    &#8211; 0.5014<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Player was walking too fast while holding a shield (NoSlowDownD)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>no-slowdown-e:<br \/>\n  # Detects walking too fast on honey blocks.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  max-speed: 0.170<br \/>\n  max-alerts: 5<br \/>\n  command: &#8220;kick %player% Player was walking too fast on honey block (NoSlowDownE)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>no-slowdown-f:<br \/>\n  # Detects walking too fast on soul sand.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  max-speed: 0.170<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Player was walking too fast on soul sand (NoSlowDownF)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>no-slowdown-g:<br \/>\n  # Detects walking too fast while sneaking.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  max-speed: 0.135<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Player was walking too fast while sneaking (NoSlowDownG)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>no-slowdown-h:<br \/>\n  # Detects walking too fast while drinking; includes an &#8220;ignore-after-speed&#8221; threshold.<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-speed: 0.20<br \/>\n  ignore-after-speed: 1.0 # The player is unable to go faster than a value of 1, so any value above that will be false, this feature prevents false reports<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Player was walking too fast while drinking (NoSlowDownH)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># REACH A<br \/>\n# Detects interacting with (placing or breaking) a block from an impossible distance.<br \/>\n# Takes into account per-player block_interaction_range attribute where available, plus tolerance and ping adjustments.<br \/>\nreach-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  base-range: 5.0 # Default base reach (used when player attribute is not available)<br \/>\n  tolerance: 0.2 # Extra tolerance added to reach checks<br \/>\n  ping-threshold: 300 # If player&#8217;s ping exceeds this, the check will grant an extra 0.5 block tolerance for player<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Interacting with distant block (ReachA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># REACH B<br \/>\n# Detects attacking players\/mobs from an impossible (too far) distance.<br \/>\n# Uses configurable base range, tolerance, and ping threshold.<br \/>\nreach-b:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  base-range: 4.0 # Default base reach (used when player attribute is not available)<br \/>\n  tolerance: 0.2 # Extra tolerance added to reach checks<br \/>\n  ping-threshold: 300 # If player&#8217;s ping exceeds this, the check will grant an extra 0.5 block tolerance for player<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Interacting with distant player (ReachB)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># THRU BLOCKS A<br \/>\n# Detects hitting entities through blocks (A variant).<br \/>\nthru-blocks-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Hitting through blocks (ThruBlocksA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># THRU BLOCKS B<br \/>\n# Detects hitting entities through blocks (B variant).<br \/>\nthru-blocks-b:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: false # Enabling this feature will take you back to the position before reporting<br \/>\n  max-alerts: 5 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% Hitting through blocks (ThruBlocksB)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># TIMER checks (A.D)<br \/>\n# Detects abnormal packet timing \/ fast-clicking \/ timer manipulation.<br \/>\ntimer-a:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-packets-per-second: 24<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% You send too many packets (TimerA)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>timer-b:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-packets-per-second: 24<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% You send too many packets (TimerB)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>timer-c:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-packets-per-second: 24<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% You send too many packets (TimerC)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p>timer-d:<br \/>\n  enabled: true # Function to enable\/disable check<br \/>\n  cancel-event: true # Enabling this feature will take you back to the position before reporting<br \/>\n  max-packets-per-second: 30<br \/>\n  max-alerts: 10 # Number of reports after which the command is executed<br \/>\n  command: &#8220;kick %player% You send too many packets (TimerD)&#8221; # The command that will be executed when the maximum number of reports is reached<br \/>\n  debug: false # Enable verbose debugging (may cause log spam \/ lag)<\/p>\n<p># === DISCORD \/ MESSAGES \/ MISC ===<\/p>\n<p># Discord integration settings (optional).<br \/>\ndiscord:<br \/>\n  enabled: false<br \/>\n  discord-webhook-url: &#8220;https:\/\/discord.com\/api\/webhooks\/your-webhook-id&#8221;<br \/>\n  username: &#8220;DuckyAntiCheat&#8221;<br \/>\n  avatar-url: &#8220;https:\/\/i.imgur.com\/ahbEPVO.png&#8221;<br \/>\n  violation-message-template: &#8220;**AntiCheatSystem**nPlayer: **%player%**nCheck: **%check%**nViolation: **%vl%**&#8221;<br \/>\n  punishment-message-template: &#8220;**Punishment Executed**nPlayer: **%player%**nCommand: `%command%`&#8221;<\/p>\n<p># Misc messages and labels used by plugin commands.<br \/>\nno-permission: &#8220;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;cNo Permission!&#8221;<br \/>\nincorrect-usage: &#8216;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;cUsage: \/duckyac reload&#8217;<br \/>\nupdate-available: &#8220;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;eA new version is available: &#038;c%version%&#8221;<br \/>\nupdate-download: &#8220;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;eDownload: &#038;a%url%&#8221;<br \/>\nupdate-check-failed: &#8220;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;cCould not check for updates.&#8221;<br \/>\nplayer-only: &#8220;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;cOnly Players can use this command.&#8221;<br \/>\nconfig-reloaded: &#8216;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;aConfiguration reloaded.&#8217;<br \/>\nplugin-reloaded: &#8216;&#038;d&#038;lDuckyAC &#038;8\u00bb &#038;aPlugin successfully reloaded.&#8217;<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd10 Permissions<\/p>\n<p>| Permission | Description |<br \/>\n|&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| `duckyac.bypass` | Completely disables checks for the player |<br \/>\n| `duckyac.bypass.<checkname>&#8211;<check-letter example- a>` | Disables only defined check for the player |<br \/>\n| `duckyac.*` | Full access (bypass + admin permissions) |<br \/>\n| `duckyac.alerts` | Receive alert messages in chat |<br \/>\n| `duckyac.update` | Receive messages in chat about an available update |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\ude80 Installation<\/p>\n<p>1. Place `DuckyAC-x.x.x.jar` in your server\u2019s `plugins\/` folder.<br \/>\n2. Start your server.<br \/>\n3. Configure the plugin in `plugins\/DuckyAC\/config.yml`.<br \/>\n4. Reload plugin with `\/duckyac reload`.<br \/>\n5. Done!<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udee0 Planned Features<\/p>\n<p>&#8211; Add more combat checks!<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\udd1d Contributing \/ Support<\/p>\n<p>Found a bug or have a suggestion?<br \/>\nReach out via Discord or open an issue in the GitHub repository!<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcdc License<\/p>\n<p>DuckyAC is licensed under the GPL-3.0 License.<br \/>\nYou are free to use, modify, and redistribute it under the terms of the license.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udca1 Recommendation<\/p>\n<p>For the best protection against modern cheat clients, it is **strongly recommended** to run **DuckyAC alongside Vulcan** and **GrimAC**.<br \/>\nEach plugin covers different types of exploits, and together they form a powerful defense.<\/p>\n<p>&#8212;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lightweight, modular, and fully configurable anti-cheat plugin for Minecraft Servers<\/p>\n","protected":false},"featured_media":59495,"template":"","meta":{"_minecraft_slug":"duckyac","_minecraft_project_id":"BoCwnbvl","_minecraft_author":"Barpad","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":707,"_minecraft_follows":6,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"duckyac.zip","_minecraft_size_bytes":1412387,"_minecraft_version_count":10,"_minecraft_updated_at":"2026-05-16T09:37:01.463604Z","_minecraft_date_created":"2025-07-08T06:28:12.708996Z","_minecraft_date_modified":"2025-12-24T23:53:17.972277Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/duckyac","_minecraft_icon_attachment_id":59495,"_minecraft_imported_at":"2026-06-03T06:15:40+00:00","_minecraft_import_hash":"7c7ae73ad0435ed23b20992b5be33c6b","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,89,126,127,128,129,92],"mod_loader":[130,132,133,134],"minecraft_version":[118,119,120,46,47,48,49,50,51,52,53,54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-59494","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-game-mechanics","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-utility","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-16","minecraft_version-1-16-1","minecraft_version-1-16-2","minecraft_version-1-16-3","minecraft_version-1-16-4","minecraft_version-1-16-5","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DuckyAC - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DuckyAC - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Lightweight, modular, and fully configurable anti-cheat plugin for Minecraft Servers\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/\",\"name\":\"DuckyAC - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/duckyac-icon-bfdc81c74740d5068510bc7950c8cd033ff36c42_96.webp\",\"datePublished\":\"2026-06-03T06:15:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/duckyac-icon-bfdc81c74740d5068510bc7950c8cd033ff36c42_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/duckyac-icon-bfdc81c74740d5068510bc7950c8cd033ff36c42_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/duckyac\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"DuckyAC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DuckyAC - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/","og_locale":"en_US","og_type":"article","og_title":"DuckyAC - Minecraft","og_description":"Lightweight, modular, and fully configurable anti-cheat plugin for Minecraft Servers","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/","name":"DuckyAC - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/duckyac-icon-bfdc81c74740d5068510bc7950c8cd033ff36c42_96.webp","datePublished":"2026-06-03T06:15:39+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/duckyac-icon-bfdc81c74740d5068510bc7950c8cd033ff36c42_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/duckyac-icon-bfdc81c74740d5068510bc7950c8cd033ff36c42_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/duckyac\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"DuckyAC"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/59494","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/59495"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=59494"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=59494"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=59494"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=59494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}