Moderation
The moderation module is a full punishment toolkit: mutes, bans, tempbans,
IP-bans, jails, warnings with escalation, freezes, and a complete disciplinary
history โ all backed by the database, all with silent variants, and all reachable
from a /mod GUI as well as the command line.
Because records live in the database, punishments survive world rollbacks and, on a network, sync across every backend server.
What It Covers¶
| Area | Commands |
|---|---|
| Mutes | /mute, /tempmute, /unmute, /mutehistory, /mutelist |
| Bans | /ban, /tempban, /unban, /banhistory, /banlist |
| IP bans | /banip, /tempbanip, /unbanip |
| Jails | /jail, /unjail, /togglejail, /setjail, /jails, /jailedplayers |
| Warnings | /warn, /tempwarn, /unwarn, /warns |
| Kicks | /kick, /kickall |
| Freeze | /freeze, /unfreeze |
| History & review | /history, /checkban, /checkmute, /sanction |
| Staff oversight | /staffhistory, /staffrollback, /commandspy, /sudo |
| Intel | /seen, /seenip, /alts |
| Server control | /lockdown, /mod (GUI) |
Many bare commands (no reason given) open a picker โ confirm GUI rather than acting instantly, which makes accidental punishments hard to fire.
How Punishments Work¶
Every punishment is a database record: who issued it, against whom, why, when, and
(for timed sanctions) when it expires. /history <player> reads the whole trail back.
Silent mode. Add -s to a punishment to suppress its public broadcast โ the
action still happens and is still logged, but chat stays quiet. The -s token is
parsed at the front of the reason:
Whether punishments broadcast at all is set by broadcast.silent-by-default; staff
who should see those broadcasts need uxmessentials.moderation.broadcast.receive.
Durations. Timed variants (/tempban, /tempmute, /tempwarn, /tempbanip)
take a duration like 1h, 7d, 30m. You can cap how long any given staffer may
issue with the max-duration tier nodes below.
Warning Escalation¶
Warnings can trigger automatic follow-up punishments. The warnings.actions list
maps a warning count to an action:
Here a player's 3rd warning auto-applies a one-hour tempmute, and their 5th an
one-day tempban. Escalation runs off the player's live warning count, so /unwarn
lowering the count changes what the next warning triggers.
Jails, Freeze & Lockdown¶
- Jails are named locations you define with
/setjail <name>./jail <player> <jail> [duration] [reason]confines a player there;/togglejailflips them in and out.jail-countdowndecides whether a timed jail counts down only while the player is online or on the wall clock. - Freeze (
/freeze,/unfreeze) pins a player in place for questioning without a formal punishment. - Lockdown (
/lockdown on|off) refuses all logins except holders ofuxmessentials.moderation.lockdown.bypassโ a fast "close the server" switch.
History, Checks & Intel¶
| Command | Reports |
|---|---|
/history <player> |
The player's full disciplinary record |
/checkban <player> ยท /checkmute <player> |
Current ban / mute state |
/sanction <player> |
An aggregated, read-only punishment summary |
/seen <player> ยท /seenip <player> |
Last seen / last IP |
/alts <player> |
Known alternate accounts |
/staffhistory <staff> |
Sanctions issued by a staff member |
/staffrollback <staff> [limit] |
Revoke a staff member's active sanctions |
/staffrollback is the accountability tool: if a staffer goes rogue or makes a batch
of bad calls, it lifts their still-active punishments in one sweep.
The /mod GUI¶
/mod opens the moderation management GUI โ the same operations as the commands,
arranged as a point-and-click panel, gated by uxmessentials.moderation.gui.
Permissions & Caps¶
Most nodes are staff-default (op). Each verb has its own node; the notable
cross-cutting ones:
| Node | Meaning |
|---|---|
uxmessentials.moderation.exempt |
Target-side immunity โ this player cannot be punished |
uxmessentials.moderation.broadcast.receive |
Receives punishment broadcasts |
uxmessentials.moderation.lockdown.bypass |
Can log in during a lockdown |
uxmessentials.moderation.ban.maxduration.<seconds> |
Longest ban this holder may issue |
uxmessentials.moderation.mute.maxduration.<seconds> |
Longest mute this holder may issue |
uxmessentials.module.moderation |
Reload / inspect the module |
The maxduration.<seconds> tiers are open-ended numbered nodes: the highest granted
value wins, and no node means unlimited. Grant
uxmessentials.moderation.ban.maxduration.604800 to cap a junior rank at seven-day
bans.
Give trusted ranks the exempt node
uxmessentials.moderation.exempt makes a player un-punishable. Grant it to admins
and console-driven automation, but audit it โ anyone with it is immune to
/ban, /mute, /jail, and the rest.
Key Settings¶
# modules/moderation/config.conf
enabled = true
jails = [] # defined via /setjail; persisted here
jail-countdown = "online-only" # online-only | wall-clock
muted-blocked-commands = [] # commands a muted player also can't run
warnings { actions = ["3:tempmute:1h", "5:tempban:1d"] }
broadcast { silent-by-default = false }
address-strictness = "..." # how strictly IPs are matched
censor-ip-addresses = true # hide raw IPs in output
Importing Existing Bans¶
Coming from another punishment plugin? uxmEssentials imports LiteBans โ bans, IP-bans, mutes and warns โ over a direct JDBC read of its database:
Always dry-run first. See Migrating from EssentialsX for the full importer workflow, conflict policy, and auto-detection notes.
LibertyBans is not supported
Only LiteBans has an import path today. LibertyBans is a reserved id with no implementation โ there is no LibertyBans importer.
Tips & Gotchas¶
-sis a leading token, not a trailing flag โ put it before the reason text.- Bare
/ban <player>(no reason) opens the confirm GUI; supply a reason to act immediately. - On a network, mutes and bans propagate to every backend via the cross-server bus, so a ban on one server is a ban everywhere.
/commandspy(aliascspy) lets you watch other players' command usage live โ handy during an investigation.
Next Steps¶
- ๐ Moderation Commands - Every verb and flag
- ๐ Permission Reference - Exempt, caps, and per-verb nodes
- โ๏ธ Per-Module Config - Jails, escalation, and broadcasts
- ๐ฆ Migrating from EssentialsX - Import LiteBans records