Configuration
Sanctions Settings
# Default durations for warns and reports
warn-duration: 30d
report-duration: 30d
# Force moderators to provide a reason
require-reason: true
# Sanction templates — shortcuts like /ban player @cheat
templates:
cheat: "30d Cheating / Hacking"
toxic: "7d Toxic behavior"
spam: "1d Spamming"
# Tab-complete suggestions
reasons:
- "Cheating"
- "Toxic behavior"
- "Spamming"
- "Advertising"
durations:
- "1h"
- "1d"
- "7d"
- "30d"
# Auto-sanctions at warning thresholds
auto-sanctions:
3: "mute 1h Excessive warnings"
5: "ban 1d Too many warnings"
10: "ban 7d Repeated violations"
# Regex-based auto-escalation by reason content
reason-escalation:
"(?i)cheat|hack": "ban 30d"
"(?i)ddos|dox|swat": "ban permanent"
# Auto-action at report count thresholds
auto-report-escalation:
5: "mute 1h"
10: "ban 1d"
# Cooldowns
cooldowns:
chat: 3 # seconds between messages
command: 1 # seconds between commands
# Anonymous moderator in broadcasts
anonymous-moderator: false
# Appeal URL shown on ban screen
appeal-url: "https://example.com/appeal"
# Auto-delete old inactive sanctions
auto-purge-days: 365IP Security
# VPN / Proxy / Tor blocking
vpn-blocking:
enabled: true
kick-message: "VPNs are not allowed on this server."
# Datacenter / hosting IP blocking
hosting-blocking:
enabled: true
# Mobile network (4G/5G) blocking
mobile-blocking:
enabled: false
# ISP blocking — by name or AS number
isp-blocking:
enabled: false
blocked:
- "AS12345"
- "Bad ISP Name"
# CIDR range blocking — supports /notation and wildcards
ip-range-blocking:
enabled: false
ranges:
- "192.168.1.0/24"
- "10.0.0.*"
# GeoIP — country whitelist or blacklist (uses ip-api.com, no API key needed)
geoip:
enabled: false
mode: blacklist # whitelist or blacklist
countries:
- "XX"Client Security
# Client brand detection and blocking
client-security:
enabled: true
log-brands: true
# Block specific modded clients
blocked-brands:
- "wurst"
- "meteor"
- "inertia"
# Whitelist mode — only allow specific clients
whitelist-mode: false
allowed-brands:
- "vanilla"
- "fabric"
# Protocol version control
min-protocol-version: 0
max-protocol-version: 99999Alt-Account Detection
XBans uses a 10-factor scoring system to detect alt accounts. Each factor contributes a configurable weight to a risk score.
# Alt-account detection
alt-detection:
enabled: true
# Factor weights (adjust to your needs)
weights:
shared-ip: 30
multiple-shared-ips: 20
same-client-brand: 5
same-protocol-version: 3
same-country: 2
same-isp: 5
login-time-proximity: 10
name-similarity: 10 # Levenshtein distance
fingerprint-match: 25
sanction-correlation: 15
# Risk thresholds
thresholds:
LOW: 20
MEDIUM: 40
HIGH: 60
CRITICAL: 80
# Auto-actions on threshold
auto-action:
enabled: false
threshold: HIGH
action: kick # kick or banAI Moderation
XBans includes a Bayesian classifier for AI-powered moderation, pre-trained out of the box in English, French, Spanish, Portuguese, and German. It self-learns from confirmed/dismissed reports and moderator actions.
# AI classifier settings
ai-classifier:
enabled: true
min-confidence: 0.7 # minimum confidence to flag
# Real-time chat moderation
chat-ai:
enabled: true
categories:
- toxicity
- spam
- scam
# Escalating actions based on offense count
actions:
1: warn
3: mute 10m
5: mute 1h
10: ban 1d
The AI also analyzes a target's recent chat messages when a report is filed, highlighting flagged messages for staff review. Training data is synchronized across servers via XCore SyncManager.
Freeze & Moderation Tools
# Freeze settings
freeze:
reminder-interval: 5 # seconds between reminders
disconnect-action: ban # action if player disconnects while frozen
# Broadcast permissions — control who sees sanction broadcasts
broadcast-permissions:
ban: "xbans.notify.ban"
mute: "xbans.notify.mute"
warn: "xbans.notify.warn"
kick: "xbans.notify.kick"Discord Webhooks
# Discord webhook notifications
discord:
enabled: false
webhook-url: "https://discord.com/api/webhooks/..."
events:
ban: true
unban: true
mute: true
unmute: true
warn: true
kick: true
report: true