Configuration
Main configuration

config.yml

Exact bundled defaults. See the usage guide before editing. YAML comments explain the adjacent settings.

locale: EN
# Template settings
templates:
  # ADVANCE_LADDER, EXTEND or REPLACE
  overlap-mode: ADVANCE_LADDER
 
# Network settings
network:
  # Unique name for each backend and proxy
  server-name: practice
  default-scope: GLOBAL
  # Server groups for custom scopes; names ignore case
  groups:
    minigames: [practice, ffa, events]
 
# Use verified UUIDs; unknown players must join first
# False allows offline UUID lookup for unknown names
online-mode: true
timezone: Asia/Dubai
public-ids: true
 
database:
  # SQLITE for one server; MYSQL for networks
  type: SQLITE
  host: localhost
  port: 3306
  database: wrongpunish
  username: wrongpunish
  password: ''
  table-prefix: wrongpunish_
  # Encrypt MySQL connections
  ssl: true
  # Pool times are in milliseconds
  pool:
    minimum-idle: 2
    maximum-pool-size: 10
    connection-timeout: 10000
    idle-timeout: 600000
    max-lifetime: 1800000
 
sync:
  enabled: true
  mode: DATABASE
  # Time between sync checks in milliseconds
  poll-interval-ms: 500
 
requirements:
  ban-reason: true
  mute-reason: true
  warn-reason: true
  kick-reason: true
  removal-reason: false
require-removal-reason: false
 
duplicate-punishments:
  # REJECT, REPLACE or EXTEND; replaced records stay in history
  mode: REJECT
override-lower-duration: false
reduce-to-limit: false
 
exemptions:
  # Use LuckPerms group weights for staff ranks
  use-group-weight: true
  allow-same-weight: false
duration-limits:
  # Match LuckPerms groups or wrongpunish.limit.<group>
  helper:
    ban: 7d
    mute: 1d
  moderator:
    ban: 30d
    mute: 30d
  admin:
    ban: permanent
    mute: permanent
 
history:
  default-limit: 10
lists:
  entries-per-page: 10
  show-active-only: true
mutes:
  enabled: true
  # Ignore command namespaces; match full command words
  blocked-commands: [msg, message, tell, whisper, w, reply, r, 'mail send', me]
warnings:
  expire-after: 7d
  clear-after-action: false
  # Run these console commands on the issuing server
  # Placeholders: {player}, {player_uuid}, {id}, {public_id}
  actions:
    '3': ['kick {player} Final Warning']
    '4': ['tempban {player} 1d Too many warnings']
 
alts:
  enabled: true
  display:
    mode: GUI
  scan-limit: 20
  history-window: 7d
notifications:
  alt-on-join: true
# NORMAL checks the latest IP; ENHANCED checks recent IPs
# Block linked accounts without adding bans; DISABLED skips checks
# Shared IPs can belong to different players
ban-alts: DISABLED
ip-report:
  minimum-accounts: 10
lockdown:
  persistent: true
  kick-online: false
retention:
  login-history: 90d
 
broadcasts:
  # Use BACKEND to avoid duplicate proxy broadcasts
  # BACKEND, PROXY or ALL (both)
  delivery: BACKEND
  public: true
  console: true
security:
  rollback-confirm-threshold: 20
  prune-confirm: true
 
commands:
  # Apply aliases on reload; remove aliases missing from this list
  aliases:
    wrongpunish: [wp]
    punish: [p]
    history: [phistory]
    alts: [accounts]
debug:
  enabled: false