Tags
Creators
Details
1.1.6
Compatibility
Changes
๐ ๏ธ DuckyAC v1.1.6 - PacketEvents & Detection Expansion Update
In v1.1.6, we're expanding the packet analysis system with two brand-new checks, improving block interaction accuracy, adding a dedicated debug command, and introducing PacketEvents support for better packet handling and future compatibility.
๐ Fixes
๐งฑ ThruBlocksB -- Additional False Positive Fix
- Fixed another false positive in ThruBlocksB.
- Improved block interaction validation to reduce unintended violations in edge-case scenarios.
- Enhances overall reliability of wall and obstacle detection.
๐งช Potion Effect Handling Improvements
- Updated internal potion effect handling logic.
- Improves compatibility with modern Minecraft versions and gameplay mechanics.
โจ New Features
๐ฆ PacketEvents Support
- Added PacketEvents as a soft dependency.
- Provides a more robust packet processing foundation for future detections and compatibility improvements.
- Allows DuckyAC to leverage additional packet-level information when available.
๐ก BadPacketsA (New Check)
- Introduced BadPacketsA, a new packet validation check.
- Detects invalid or abnormal packet behavior commonly associated with modified clients.
- Designed for low false positive rates and lightweight performance impact.
โก FastPlaceB (New Check)
- Added FastPlaceB, a new block placement detection.
- Targets unnatural block placement speeds and automated placement behavior.
- Complements existing placement-related protections for improved coverage.
๐ Experimental Debug Command
Added a new command:
/duckyac debug
- Provides diagnostic information useful for troubleshooting and testing detections.
- โ ๏ธ This feature is currently experimental. Some functions may not work correctly yet and behavior may change in future updates.
- Intended primarily for development, testing, and advanced debugging purposes.
โ๏ธ Config Additions
Added full configuration support for BadPacketsA and FastPlaceB.
โ ๏ธ Important: Updating your config.yml is required when upgrading to v1.1.6. Failure to add the new configuration sections may result in startup errors or disabled functionality.
BadPacketsA
# BAD PACKETS A
badpackets-a:
enabled: true
min-delta: 0.1
max-ratio: 100.0
min-ratio: 0.01
debug: false
max-alerts: 5
command: "kick %player% Suspicious aim packets (BadPacketsA)"
FastPlaceB
# FAST PLACE B
# Detects placing blocks too quickly (anti-fast-place).
fastplace-b:
enabled: true # Function to enable/disable check
max-blocks-per-second: 14
min-samples: 6
min-avg-gap-ms: 55.0
min-std-dev-ms: 8.0
suspicious-avg-cap-ms: 250.0
cancel-event: true # Enabling this feature will take you back to the position before reporting
debug: false # Enable verbose debugging (may cause log spam / lag)
max-alerts: 5 # Number of reports after which the command is executed
command: "kick %player% Suspected fast place (FastPlaceB)" # The command that will be executed when the maximum number of reports is reached
๐ง Internal Improvements
โ MathUtil Utility
- Added a new internal utility class: MathUtil.java.
- Centralizes mathematical calculations used by multiple checks.
- Improves maintainability and consistency across the codebase.
๐ Compatibility Changes
๐ฎ Updated Minimum Supported Version
1.18.2 โ 1.20.6
Java 16 โ Java 21
- Ensures compatibility with newer APIs and packet handling improvements.
๐ฆ Version
- Updated plugin version to 1.1.6
๐ Summary
This update introduces BadPacketsA and FastPlaceB, adds PacketEvents integration, improves ThruBlocksB accuracy, provides an experimental /duckyac debug command, and modernizes the plugin with updated compatibility requirements and internal utilities.
โ ๏ธ Server owners upgrading from previous versions must update their config.yml with the newly added BadPacketsA and FastPlaceB sections before starting the server.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:BoCwnbvl:l2WVN9lg"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:BoCwnbvl:l2WVN9lg"
}

