Skip to content

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:

/ban Griefer -s using x-ray

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:

# modules/moderation/config.conf
warnings {
  actions = ["3:tempmute:1h", "5:tempban:1d"]
}

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; /togglejail flips them in and out. jail-countdown decides 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 of uxmessentials.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:

/uxmess import litebans --dry-run
/uxmess import litebans

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

  • -s is 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 (alias cspy) lets you watch other players' command usage live โ€” handy during an investigation.

Next Steps