Moderation

Last updated Oct 28, 2026

Moderation

Punishment stack, reports, and tickets for staff workflows. Commands: Commands: Moderation. Config: moderation.yml, jails.yml. Modules: moderation, freeze, jail, reports, tickets. Defaults: Default moderation.yml · Default jails.yml · Config Reference.

Player how-to

  1. Report a player: /sa report <player> <reason> (cooldown from moderation.yml → reports.cooldown-seconds).
  2. Open a support ticket: /sa ticket create → list / view / respond / close as needed.
  3. While muted/jailed/frozen, only whitelisted commands work (see config tables below).

Staff how-to

  1. Soft → hard: warn → mute/tempmute → kick → ban/tempban/banip. Quick presets: /sa qp <template>.
  2. Freeze: /sa freeze <player> / /sa unfreeze. Jail: create rooms first (/sa jail create <name>), set default (/sa jail setdefault <room>), then /sa jail <player> <duration> [room].
  3. Review: /sa check, /sa punishhistory, /sa case, /sa banlist / mutelist / jaillist / freezelist.
  4. Reports: /sa reports → claim → /sa resolvereport. Tickets: /sa tickets (assign needs soapsadmin.ticket.assign).
  5. Tune moderation.yml / jails.yml, then /sa reload moderation or /sa reload jails.

Punishment Stack

Layer Commands Notes
Soft /sa warn, /sa warns, /sa clearwarns Escalation templates in moderation.yml
Chat /sa mute, /sa tempmute, /sa unmute Active mute tracked for placeholders
Session /sa kick, /sa kickall Immediate disconnect
Account /sa ban, /sa tempban, /sa unban, /sa banip Persist across reconnects
Position /sa freeze / /sa unfreeze, /sa jail / /sa unjail Freeze module + jail rooms
Quick /sa qp <player> <template> Named templates from config
Record /sa punishhistory, /sa case, /sa rollback Case ids for audit/rollback
Lists /sa banlist, /sa mutelist, /sa jaillist, /sa freezelist, /sa check Active state overview

Immunity: soapsadmin.moderation.immune. Override: soapsadmin.moderation.override-immune. Silent: soapsadmin.silent + -s.

Staff notes (/sa note / /sa notes) and alts (/sa alts) sit beside the stack; see Commands: Staff.

Config keys (moderation.yml)

Key Default Effect
staff.broadcast-punishments true Notify online staff about punishments
staff.silent-prefix [Silent] Prefix on silent punishment broadcasts
freeze.mode hard hard = no move; soft = look around allowed
freeze.block-chat true Block chat while frozen
freeze.block-commands true Block commands while frozen
freeze.command-whitelist /sa Commands still allowed while frozen
moderation.ip-ban-enabled false Allow /sa banip
moderation.mute-block-commands true Block commands while muted
moderation.mute-command-whitelist /msg, /r, /reply Commands allowed while muted
alt-detection.trusted-ips [] IPs that do not trigger alt warnings
warn-escalation.enabled true Auto-punish at exact warn counts
warn-escalation.auto-reason-prefix [Auto] Prefix on auto reasons
warn-escalation.silent false Silent auto-escalations
warn-escalation.thresholds 2/3/5/10 Exact-match thresholds (kick, tempmute, tempban, ban, …)
reports.cooldown-seconds 60 Per-reporter report cooldown
templates.* hacking, chat-spam, … /sa qp presets (kick/ban/tempban/mute/tempmute/warn)
item-blacklist.enabled false Confiscate listed (or non-listed) materials

Item blacklist detail (when enabled): mode (blacklist/whitelist), scan-on-join / pickup / craft / inventory-click, notify-player, exempt-creative, log-to-console, items:.

Jail (jails.yml)

Do not edit rooms: or jailed-players: by hand while the server is running. Use in-game commands.

Key Default Effect
jail.radius 10 Blocks jailed players may move from entry point
jail.allowed-commands /sa, /soapsadmin, /msg, /tell, /r, /reply Commands still allowed while jailed
default-jail null Default room when /sa jail omits room name
rooms {} Managed via `/sa jail create
jailed-players {} Runtime jail sentences (auto-managed)

Reports

Role Action
Player /sa report <player> <reason>
Staff /sa reports, claim (reportclaim / reports claim), /sa resolvereport

Module: reports. Staff notify uses soapsadmin.staff.notify.

Tickets

Role Action
Player /sa ticket create / list / view / respond / close
Staff /sa ticket GUI: create, reply, assign, reopen, shift-click delete; /sa ticket delete <id>; assign needs soapsadmin.ticket.assign

Ticket list and view show a clear CLOSED label and gray icon when closed. Settings under server.yml. Placeholder: %soapsadmin_tickets_open% (Placeholders).

Audit

/sa audit [player|staff|type|gui] reads action history. Mining ratios: /sa xraycheck (mining-audit.yml).

Still stuck? Ask about this page