Skip to content

Moderation

OPaperStream edited this page Oct 9, 2026 · 2 revisions

Moderation

Bans, mutes and kicks

Off by default, because backend servers and ban plugins use the same command names.

[punish]
enabled = true

Restart the proxy after changing it.

Command Permission
/ban <player> [duration] [reason] paperproxy.command.ban
/unban <player>, /banlist paperproxy.command.ban
/mute <player> [duration] [reason] paperproxy.command.mute
/unmute <player> paperproxy.command.mute
/kick <player> [reason] paperproxy.command.kick

Durations: 30m, 12h, 7d, 2w, 1y or combined like 1d12h. Without a duration the punishment is permanent.

  • Bans work for offline players by name. On their next login their UUID is stored, so a name change does not help, and a new player who later takes the name is not affected.
  • Mutes block chat and private messages (/msg, /tell, /w, /r, /me).
  • Players with paperproxy.punish.exempt cannot be punished.
  • Everything is stored in punishments.json and shared with other proxies through the Multi Proxy Sync.

Bot protection

[antibot]
enabled = true
attack-threshold = 30
attack-duration-seconds = 60
attack-known-only = true
max-accounts-per-ip = 0
blocked-name-pattern = ""
require-ping = "attack"
  • More than attack-threshold new connections per second switch on attack mode. During an attack only players who joined before can connect: from the same network as before (IPv4 /24, IPv6 /64), and with the same UUID once they are logged in.
  • require-ping: new players must have opened the server list in the last 10 minutes. off, attack (only during an attack) or always. Most bots skip the server list.
  • max-accounts-per-ip limits players from one address (paperproxy.antibot.bypass ignores it).
  • blocked-name-pattern refuses names that match a regular expression.

Staff with paperproxy.notify.antibot is told when an attack starts and ends.

Clone this wiki locally