343 lines
9.1 KiB
YAML
343 lines
9.1 KiB
YAML
# XeroAntiCheat Configuration File
|
|
# Version: 1.0.0
|
|
# Target: Paper 1.21.x (compatible with 1.20-1.22)
|
|
|
|
# ==========================================
|
|
# GENERAL SETTINGS
|
|
# ==========================================
|
|
|
|
# Enable or disable the anti-cheat
|
|
enabled: true
|
|
|
|
# Enable debug mode (logs additional information)
|
|
debug: false
|
|
|
|
# Number of async threads for background tasks
|
|
async_task_threads: 2
|
|
|
|
# Database settings
|
|
database:
|
|
# Set to false to disable SQLite logging (flat-file log always active)
|
|
enabled: true
|
|
|
|
# ==========================================
|
|
# VIOLATION SYSTEM
|
|
# ==========================================
|
|
|
|
violation:
|
|
# Time in seconds between violation level decay
|
|
decay_interval: 30
|
|
|
|
# Amount to reduce VL by each decay interval
|
|
decay_rate: 0.5
|
|
|
|
# ==========================================
|
|
# CHECK CONFIGURATION
|
|
# ==========================================
|
|
|
|
# Movement Checks
|
|
checks:
|
|
# ----------------------------------------
|
|
# SPEED CHECK
|
|
# Detects horizontal movement faster than possible
|
|
# ----------------------------------------
|
|
speed:
|
|
enabled: true
|
|
# Base maximum speed (blocks per tick)
|
|
max_speed: 0.56
|
|
# Ping compensation factor (scales latency leniency)
|
|
ping_factor: 1.0
|
|
# Number of ticks to buffer for rolling average
|
|
buffer_ticks: 5
|
|
# VL thresholds
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# FLY CHECK
|
|
# Detects flying without elytra/creative/spectator
|
|
# ----------------------------------------
|
|
fly:
|
|
enabled: true
|
|
# Number of ticks to allow for stepping/slabs
|
|
fall_buffer: 10
|
|
# Maximum ground desync ticks before flagging
|
|
ground_desync_threshold: 3
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# JESUS CHECK (NoWaterWalk)
|
|
# Detects walking on water without Frost Walker
|
|
# ----------------------------------------
|
|
jesus:
|
|
enabled: true
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# NOFALL CHECK
|
|
# Detects no fall damage after falling >3 blocks
|
|
# ----------------------------------------
|
|
nofall:
|
|
enabled: true
|
|
# Minimum fall distance to track
|
|
min_fall_distance: 3
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# TIMER CHECK (Blink/Packet Timer)
|
|
# Detects packet timing anomalies
|
|
# ----------------------------------------
|
|
timer:
|
|
enabled: true
|
|
# Maximum packets per second allowed
|
|
max_packets_per_second: 22
|
|
# Milliseconds of no packets before flagging blink
|
|
blink_threshold_ms: 500
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# SPIDER CHECK
|
|
# Detects climbing non-climbable blocks
|
|
# ----------------------------------------
|
|
spider:
|
|
enabled: true
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# GLIDE CHECK (ElytraHack)
|
|
# Detects glide-like movement without elytra
|
|
# ----------------------------------------
|
|
glide:
|
|
enabled: true
|
|
# Minimum horizontal speed for glide detection
|
|
min_horizontal_speed: 0.5
|
|
# Maximum Y decrease per tick for glide curve
|
|
max_y_decrease: 0.1
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# KILLAURA CHECK
|
|
# Detects impossible combat angles/rotations
|
|
# ----------------------------------------
|
|
killaura:
|
|
enabled: true
|
|
# Maximum angle in degrees from look direction
|
|
max_angle: 100
|
|
# Maximum rotation change between attacks
|
|
max_rotation_change: 45
|
|
# Window for multi-target detection (ms)
|
|
multitarget_window_ms: 100
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# REACH CHECK
|
|
# Detects attacking beyond reach
|
|
# ----------------------------------------
|
|
reach:
|
|
enabled: true
|
|
# Maximum reach in blocks (survival)
|
|
max_reach: 3.2
|
|
# Maximum reach in blocks (creative)
|
|
creative_max_reach: 5.0
|
|
# Ping compensation factor
|
|
ping_factor: 1.0
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# CRITICAL CHECK
|
|
# Detects critical hits without being airborne
|
|
# ----------------------------------------
|
|
critical:
|
|
enabled: true
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# AUTOCLICKER CHECK
|
|
# Detects excessive CPS or perfect patterns
|
|
# ----------------------------------------
|
|
autoclicker:
|
|
enabled: true
|
|
# Maximum clicks per second
|
|
max_cps: 20
|
|
# Minimum variance (lower = more suspicious)
|
|
min_variance: 2.0
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# FASTPLACE CHECK
|
|
# Detects block placement too fast
|
|
# ----------------------------------------
|
|
fastplace:
|
|
enabled: true
|
|
# Maximum blocks per second
|
|
max_blocks_per_second: 20
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# PHASE CHECK
|
|
# Detects players clipping through solid blocks
|
|
# ----------------------------------------
|
|
phase:
|
|
enabled: true
|
|
# Minimum movement distance before ray-cast runs (blocks)
|
|
min_distance: 0.5
|
|
# Maximum movement delta — larger values are treated as teleports
|
|
max_distance: 5.0
|
|
warn_vl: 5
|
|
kick_vl: 15
|
|
tempban_vl: 30
|
|
permban_vl: 60
|
|
|
|
# ----------------------------------------
|
|
# VELOCITY CHECK
|
|
# Detects players ignoring server-sent knockback (requires ProtocolLib)
|
|
# ----------------------------------------
|
|
velocity:
|
|
enabled: true
|
|
# Minimum server-sent velocity magnitude to check
|
|
min_expected_velocity: 0.15
|
|
# Player must move at least 20% of expected knockback
|
|
min_displacement_ratio: 0.2
|
|
warn_vl: 8
|
|
kick_vl: 20
|
|
tempban_vl: 40
|
|
permban_vl: 80
|
|
|
|
# ----------------------------------------
|
|
# SCAFFOLD CHECK
|
|
# Detects automated scaffolding
|
|
# ----------------------------------------
|
|
scaffold:
|
|
enabled: true
|
|
# Minimum pitch angle for suspicious placement
|
|
min_pitch: 75
|
|
# Number of signals required to flag
|
|
signals_required: 2
|
|
# Signal 4: Max yaw change (degrees) between placements
|
|
rotation_lock_threshold: 2.0
|
|
# Signal 4: Min horizontal speed (blocks/tick) required
|
|
min_move_speed: 0.15
|
|
# Signal 5: StdDev below this triggers signal (too-perfect timing)
|
|
min_placement_variance_ms: 30.0
|
|
# Signal 5: Min blocks/sec before signal 5 is evaluated
|
|
min_bps_for_variance_check: 5
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# FASTEAT CHECK
|
|
# Detects eating faster than possible
|
|
# ----------------------------------------
|
|
fasteat:
|
|
enabled: true
|
|
# Maximum eating duration in ticks (32 = 1.6s)
|
|
max_eat_ticks: 32
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ----------------------------------------
|
|
# INVENTORYMOVE CHECK
|
|
# Detects movement while inventory open
|
|
# ----------------------------------------
|
|
inventorymove:
|
|
enabled: true
|
|
warn_vl: 10
|
|
kick_vl: 25
|
|
tempban_vl: 50
|
|
permban_vl: 100
|
|
|
|
# ==========================================
|
|
# PUNISHMENT SETTINGS
|
|
# ==========================================
|
|
|
|
punishments:
|
|
# Commands to execute for each punishment level
|
|
# Use %player% for player name, %reason% for reason
|
|
kick_command: "kick %player% &c[XAC] Illegal activity detected"
|
|
tempban_command: "tempban %player% 30d %reason%"
|
|
permban_command: "ban %player% %reason%"
|
|
|
|
# Default reason for bans
|
|
default_reason: "[XeroAntiCheat] Suspicious activity"
|
|
|
|
# ==========================================
|
|
# ALERT SYSTEM
|
|
# ==========================================
|
|
|
|
alerts:
|
|
# Enable or disable alert broadcasts
|
|
enabled: true
|
|
|
|
# Alert format (MiniMessage)
|
|
# Available placeholders: %player%, %check%, %vl%
|
|
format: "<dark_red>[<red>XAC<dark_red>] <white>%player% <red>failed <white>%check% <red>(VL: <white>%vl%<red>)"
|
|
|
|
# Staff-only alert format
|
|
staff_format: "<gray>[%time%] %message%"
|
|
|
|
# Minimum milliseconds between alert/warn messages for the same player+check.
|
|
# Prevents chat spam when a player is flagging at high frequency.
|
|
# Default: 5000ms (5 seconds). Set to 0 to disable throttling.
|
|
cooldown_ms: 5000
|
|
|
|
# ==========================================
|
|
# COMMANDS
|
|
# ==========================================
|
|
|
|
commands:
|
|
# Permission required for admin commands
|
|
reload_permission: "xac.admin"
|
|
# Permission to bypass all checks
|
|
bypass_permission: "xac.bypass"
|
|
# Permission to receive alerts
|
|
alerts_permission: "xac.alerts"
|
|
|
|
# ==========================================
|
|
# TPS COMPENSATION
|
|
# ==========================================
|
|
|
|
tps:
|
|
# Enable TPS-based threshold scaling
|
|
enabled: true
|
|
# Minimum TPS to apply compensation
|
|
min_tps_threshold: 18.0
|