MaceGuard
Anti-cheat specifically made for preventing mace hacks such as MaceDMG
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
MaceGuard
⚡ MaceGuard
🎯 What This Does
Stops MaceDMG hack
How it works: Calculates expected damage server-side → Compares to actual → Bans after 3 violations
More accurate bans - using server side fall calculations additionaly supports with density and wind burst enchantments, windcharge jumps, jump boost potions and enderpearl catches. Check config below for more details.
📦 Installation
1. Download MaceGuard-1.0.0.jar 2. Stop server 3. Copy to plugins/ folder 4. Start server
🔑 Permissions
Moderators - see alerts - maceguard.alerts - maceguard.staff
Admins - full access - maceguard.*
Via Luckperms
- /lp group moderator permission set maceguard.alerts true - /lp group admin permission set maceguard.* true
📝 Config
Spoiler
``` ##############################################
MaceGuard Configuration File #
Advanced Mace Damage Validation System #
##############################################
Plugin prefix for messages
prefix: "&c[MaceGuard]"
Damage Validation Settings
damage-validation:
Enable the damage validation system
enabled: true
Tolerance multiplier for legitimate damage variations
1.15 = allow up to 15% over expected damage (for lag, rounding errors)
Lower = stricter, Higher = more lenient
tolerance-multiplier: 1.15
Minimum fall distance required for smash attack bonus
Vanilla is 1.5 blocks, we use 1.3 to account for client-server sync
min-fall-distance: 1.3
Maximum fall distance to track (blocks)
Set to -1 for unlimited
max-fall-distance: 256
Enable server-side fall distance calculation
HIGHLY RECOMMENDED: Keep this true to prevent spoofing
server-side-calculation: true
Recalculate damage server-side (cancel and reapply)
If false, only logs violations but doesn't prevent damage
cancel-invalid-damage: true
Special Mechanics Tracking
mechanics:
Wind Charge detection
wind-charge: enabled: true
Time window to detect wind charge usage (ms)
detection-window: 2000
Bonus fall distance to add when detected (blocks)
bonus-fall-distance: 7.0
Ender Pearl detection
ender-pearl: enabled: true
Time window to detect ender pearl usage (ms)
detection-window: 3000
Whether to track pearl height for calculation
track-pearl-height: true
Jump Boost potion
jump-boost: enabled: true
Bonus fall distance per amplifier level (blocks)
bonus-per-level: 0.5
Wind Burst enchantment
wind-burst: enabled: true
Bonus fall distance per enchantment level (blocks)
bonus-per-level: 7.0
Track consecutive smash attacks
track-combos: true
Density Enchantment Validation
density:
Enable density enchantment validation
enabled: true
Maximum density level (vanilla is 5)
max-level: 5
Damage bonus per block fallen per level
Vanilla formula: 0.5 * level * blocks
damage-per-block-per-level: 0.5
Validate that density is actually on the weapon
verify-enchantment: true
Logging Settings
logging:
Enable logging to files
enabled: true
Log all violations
log-violations: true
Log suspicious hits (within tolerance but high)
log-suspicious: true
Log all legitimate high-damage hits for monitoring
log-high-damage: true high-damage-threshold: 50.0
Log bans
log-bans: true
Console output
console: enabled: true
Log level: INFO, WARNING, SEVERE
level: "WARNING"
File output
files: violations: "violations.log" suspicious: "suspicious.log" bans: "bans.log" high-damage: "high-damage.log"
Punishment System
punishment:
Enable automatic punishments
auto-ban: true
Maximum violations before punishment
max-violations: 3
Ban duration (requires LiteBans, AdvancedBan, or compatible plugin)
Format: #d = days, #h = hours, #m = minutes
ban-duration: "2d"
Ban reason (supports color codes with &)
ban-reason: "&c[MaceGuard] MaceDMG Exploit - Spoofed fall distance detected"
Reset violations after this time (minutes)
Set to -1 to never reset
reset-violations-after: 30
Broadcast punishments
broadcast: enabled: true message: - "&8&m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" - "&c⚠ &fMaceGuard &7detected &c%player% &7using mace exploit" - "&7Violations: &c%violations% &7| Excess Damage: &c%excess-damage%" - "&7Punishment: &c%duration% ban" - "&8&m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
Commands to execute on punishment
%player% = player name
%uuid% = player UUID
%violations% = violation count
commands: - "tempban %player% 2d &c[MaceGuard] MaceDMG Exploit"
Add more commands as needed
- "discord send #bans %player% was banned for mace exploit"
Alerts
alerts:
Send real-time alerts to staff
enabled: true
Permission required to receive alerts
permission: "maceguard.alerts"
Alert format
format: "&c[MaceGuard] &e%player% &7attempted mace exploit! &f[VL: %vl%/%max-vl%] &7Expected: &f%expected%, &7Dealt: &c%actual%"
Hover message (Paper servers only)
hover: - "&7Player: &f%player%" - "&7Violation: &f%vl%/%max-vl%" - "&7Expected Damage: &f%expected%" - "&7Actual Damage: &c%actual%" - "&7Excess: &c%excess%" - "&7Fall Distance: &f%fall-distance% blocks" - "&7Wind Charge: %wind-charge%" - "&7Ender Pearl: %ender-pearl%" - "" - "&eClick to teleport"
Click action
click-command: "/tp %player%"
Send alerts to Discord webhook
discord: enabled: false webhook-url: "https://discord.com/api/webhooks/YOUR_WEBHOOK_HERE"
Minimum violations before sending to Discord
min-violations: 2
Embed color (decimal)
color: 16711680 # Red
Player Warnings
warnings:
Send warnings to violating players
enabled: true
Warning message
message: "&c[MaceGuard] &7Invalid mace damage detected! &c[%vl%/%max-vl%]"
Title notification
title: enabled: true title: "&c⚠ Warning ⚠" subtitle: "&7Mace exploit detected" fade-in: 10 stay: 40 fade-out: 10
Send warning at specific violation thresholds
thresholds: - 1 - 2 - 3
Exemptions
exemptions:
Bypass permission
bypass-permission: "maceguard.bypass"
Exempt creative mode players
exempt-creative: true
Exempt spectator mode players
exempt-spectator: true
Exempt players in specific worlds
exempt-worlds: - "creative_world" - "test_world"
Exempt players in specific regions (requires WorldGuard)
exempt-regions: - "spawn" - "safezone"
Whitelist specific players (UUID or username)
whitelisted-players:
- "069a79f4-44e9-4726-a5be-fca90e38aaf5"
- "Notch"
Performance Optimization
performance:
Run calculations asynchronously where possible
async-processing: true
Thread pool size for async tasks
thread-pool-size: 2
Cache player data for this many ticks (20 ticks = 1 second)
cache-duration-ticks: 100
Maximum players to check per tick (prevents lag spikes)
max-checks-per-tick: 50
Cleanup interval for old data (ticks)
cleanup-interval-ticks: 6000 # 5 minutes
Cleanup threshold (remove data older than this in ms)
cleanup-threshold-ms: 300000 # 5 minutes
Debug Settings
debug:
Enable debug mode (verbose console output)
enabled: false
Debug specific players
debug-players:
- "TestPlayer123"
Show expected vs actual damage in console
show-damage-calculations: false
Track all mace hits (even legitimate ones)
track-all-hits: false
Integration with other plugins
integration:
Vulcan Anti-Cheat integration
vulcan: enabled: true
Send violations to Vulcan's log
log-to-vulcan: true
GrimAC integration
grim: enabled: true
Send violations to Grim's log
log-to-grim: true
LiteBans / AdvancedBan
ban-plugin:
Auto-detect ban plugin (LiteBans, AdvancedBan, vanilla)
auto-detect: true
Force specific plugin: "litebans", "advancedban", "vanilla"
force: "auto"
Statistics Tracking
statistics:
Track player mace statistics
enabled: true
Track legitimate high-damage hits
track-high-damage: true
Track total mace hits per player
track-hit-count: true
Track average damage per player
track-average-damage: true
Advanced Options
advanced:
Packet validation level (higher = stricter, more CPU)
Values: 1 (low), 2 (medium), 3 (high)
validation-level: 2
Enable packet-level validation (requires ProtocolLib)
packet-validation: enabled: false
This is experimental and may cause issues
use-protocollib: false
Fall distance calculation method
"server" = server-side only (most secure)
"client" = trust client (not recommended)
"hybrid" = server with client validation
calculation-method: "server"
Maximum violations to store in memory
max-violations-stored: 1000
DO NOT EDIT
config-version: 1.0.0 ```
Why this plugin ❓
- Server side calculation based, due to which chances of bypass is minimal.