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: 365

IP 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: 99999

Alt-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 ban

AI 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