MaceGuard

Anti-cheat specifically made for preventing mace hacks such as MaceDMG

539

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.

ADS