DUXPLIMA Documentation

Moderation

Bans, mutes, jails, warnings with escalation, freeze, lockdown and the disciplinary history behind them.

Moderation is the punishment toolkit: bans and tempbans, mutes, IP bans, jails, warnings that escalate, freezes, a lockdown switch, and the history that ties them together. Every punishment is a database record holding who issued it, against whom, why and until when, so punishments survive a world rollback and, on a network, apply on every backend. The same actions are reachable from /mod as a menu.

Module moderation · enabled by default · modules/moderation/config.conf

Commands

/* generated:commands */
CommandWhat it doesPermission
/altsList accounts sharing a player's IP.uxmessentials.moderation.seen
/banPermanently ban a player (prefix the reason with -s to ban silently).uxmessentials.moderation.ban
/banhistoryReview a player's ban history.uxmessentials.moderation.ban
/banipBan a player or IP by address.uxmessentials.moderation.banip
/banlistReview currently banned players.uxmessentials.moderation.banlist
/checkbanCheck whether a player is banned.uxmessentials.moderation.check
/checkmuteCheck whether a player is muted.uxmessentials.moderation.check
/commandspy (/cspy)Watch the commands other players run.uxmessentials.moderation.commandspy
/freezePin a player in place pending review.uxmessentials.moderation.freeze
/historyReview a player's full sanction history.uxmessentials.moderation.history
/jailConfine a player to a jail, optionally for a duration.uxmessentials.moderation.jail
/jailedplayersList the players currently jailed.uxmessentials.moderation.jail
/jailsList the configured jails.uxmessentials.moderation.jail
/kickKick a player (prefix the reason with -s to kick silently).uxmessentials.moderation.kick
/kickallKick all non-exempt players.uxmessentials.moderation.kick
/lockdownLock the server so only bypass holders can join.uxmessentials.moderation.lockdown
/modOpen the moderation management GUI (active punishments + per-player history).uxmessentials.moderation.gui
/modstatsShow staff punishment analytics.uxmessentials.moderation.stats
/muteMute a player, optionally for a duration (prefix the reason with -s to mute silently).uxmessentials.moderation.mute
/mutehistoryReview a player's mute history.uxmessentials.moderation.mute
/mutelistReview currently muted players.uxmessentials.moderation.mutelist
/punishApply a configured punishment template to a player.uxmessentials.moderation.templates
/sanctionShow a player's current mute, jail, ban and warning summary.uxmessentials.moderation.sanction
/seenLast-seen / last-IP lookup, surfaces alts.uxmessentials.moderation.seen
/seenipLast-seen / last-IP lookup, surfaces alts.uxmessentials.moderation.seen
/setjailDefine a jail at your location.uxmessentials.moderation.jail
/staffhistoryReview the sanctions a staff member issued.uxmessentials.moderation.staffhistory
/staffrollbackRevoke a staff member's still-active sanctions.uxmessentials.moderation.staffrollback
/sudoRun a command as another player.uxmessentials.moderation.sudo
/tempbanBan a player for a duration (prefix the reason with -s to ban silently).uxmessentials.moderation.tempban
/tempbanipBan an IP for a duration.uxmessentials.moderation.banip
/tempmuteMute a player for a duration (prefix the reason with -s to mute silently).uxmessentials.moderation.mute
/tempwarnWarn a player for a duration (prefix the reason with -s to warn silently).uxmessentials.moderation.warn
/togglejailToggle a player's jail: release if jailed, otherwise jail them.uxmessentials.moderation.togglejail
/unbanLift a player's permanent ban.uxmessentials.moderation.ban
/unbanipLift an IP ban.uxmessentials.moderation.banip
/unfreezePin a player in place pending review.uxmessentials.moderation.freeze
/unjail/unjail <player>.uxmessentials.moderation.unjail
/unmute/unmute <player>.uxmessentials.moderation.unmute
/unwarnClear a player's warnings.uxmessentials.moderation.warn
/warnWarn a player (prefix the reason with -s to warn silently).uxmessentials.moderation.warn
/warnsIssue (standing or timed), review and clear warning history.uxmessentials.moderation.warn
/* /generated */

Permissions

/* generated:permissions */
NodeDefaultGrants
uxmessentials.moderation.<sanction>.maxduration.<seconds>opThe longest ban, mute or jail you may hand out, in seconds; the largest tier held wins.
uxmessentials.moderation.banop/ban <player> [reason] and /unban <player>: permanent UUID ban and its lift; /banhistory <player> reviews a player's full ban/unban history.
uxmessentials.moderation.banipop/banip <player|ip> [reason] / /unbanip <ip>: IP ban with stored-IP alt detection.
uxmessentials.moderation.banlistop/banlist to review the players currently banned.
uxmessentials.moderation.broadcast.receiveopReceive the staff sanction broadcast: the one-line announcement a non-silent /ban /mute /kick /warn emits. The -s flag (or broadcast.silent-by-default) suppresses it. Duration tiers ride numbered nodes: uxmessentials.moderation.ban.maxduration.<seconds> and uxmessentials.moderation.mute.maxduration.<seconds> cap how long a ban/mute that holder may issue (highest held wins; no node = unlimited).
uxmessentials.moderation.checkop/checkban <player> and /checkmute <player>: report whether a player is currently banned or muted.
uxmessentials.moderation.commandspyop/commandspy (/cspy) to watch the commands other players run.
uxmessentials.moderation.exemptopCannot be muted/jailed/tempbanned/kicked/warned/IP-banned/frozen by lower staff.
uxmessentials.moderation.freezeop/freeze <player> / /unfreeze <player>: pin a player in place pending review.
uxmessentials.moderation.guiop/mod opens the moderation management GUI (active punishments + per-player history).
uxmessentials.moderation.historyop/history <player>: review a player's full disciplinary record (ban/mute/warn/kick) newest-first.
uxmessentials.moderation.jailop/jail <player> <jail> [duration] [reason]; /jails lists configured jails; /jailedplayers lists who is jailed; /setjail <name> defines a jail at your location; /jail del <name> removes a defined jail.
uxmessentials.moderation.kickop/kick <player> [reason]; /kickall [reason] to clear non-exempt players.
uxmessentials.moderation.lockdownop/lockdown [on|off]: refuse every login except holders of the lockdown bypass; the flag survives restart.
uxmessentials.moderation.lockdown.bypassopJoin the server while it is locked down (/lockdown). Held by staff who must stay reachable during a lockdown.
uxmessentials.moderation.muteop/mute <player> [duration] [reason] (/tempmute is the explicit duration alias); /mutehistory <player> reviews a player's full mute/unmute history.
uxmessentials.moderation.mutelistop/mutelist to review the players currently muted.
uxmessentials.moderation.sanctionop/sanction <player>: aggregated read-only punishment summary: current mute, jail, ban state and active warning count.
uxmessentials.moderation.seenop/seen, /seenip and /alts <player>: last-seen / last-IP lookup, surfaces alts.
uxmessentials.moderation.staffhistoryop/staffhistory <staff>: review the sanctions a staff member has issued, newest-first.
uxmessentials.moderation.staffrollbackop/staffrollback <staff> [limit]: revoke a staff member's still-active sanctions (un-ban/un-mute/clear-warns the targets they sanctioned).
uxmessentials.moderation.statsop/modstats [staff] [days]: staff punishment analytics: a most-active-staff leaderboard or a single staff member's breakdown, optionally over the last N days.
uxmessentials.moderation.sudoop/sudo <player> <command>: run a command as another player.
uxmessentials.moderation.tempbanop/tempban <player> <duration> [reason].
uxmessentials.moderation.templatesop/punish <player> <template>: apply a configured punishment template (a preset reason + optional duration) as a ban or tempban.
uxmessentials.moderation.togglejailop/togglejail <player> [jail] [reason]: release the target if jailed, otherwise jail them in the named jail (or the first configured jail).
uxmessentials.moderation.unjailop/unjail <player>.
uxmessentials.moderation.unmuteop/unmute <player>.
uxmessentials.moderation.warnop/warn <player> [reason], /tempwarn <player> <duration> [reason], /warns <player> and /unwarn <player>: issue (standing or timed), review and clear warning history.
uxmessentials.module.moderationopHot-reload / inspect the moderation module (bans, mutes, jails, warnings and history).
/* /generated */

Settings

/* generated:settings */
KeyDefaultWhat it does
jails[]names of defined jails, e.g. ["spawnjail"]
jail-countdown"online-only"online-only (counts only while online) | wall-clock
muted-blocked-commands["me", "msg", "tell", "w", "whisper", "mail", "helpop", "r", "reply"]
warnings.actions["3:tempmute:1h", "5:tempban:1d"]
broadcast.silent-by-defaultfalse
address-strictness"NORMAL"NORMAL | STRICT
discord-notifyfalseDiscord notification: when true, each successful punishment additionally emits a formatted "who punished whom" line (staff, target, type, reason, duration) on the shared audit channel that the optional Discord bridge (uxmessentials-discord) forwards, so staff see readable, name-based punishment notices in Discord. Off by default, and a no-op when no bridge is installed (the line simply lands in the audit log).
censor-ip-addressesfalsePrivacy: when true, /seenip masks the address it shows (e.g. 203...* for IPv4, 2001:* for IPv6), keeping the alt accounts (which /seenip and /alts list by name, never by IP) visible to staff without exposing the raw address. Off by default so staff see full addresses; turn it on to reduce how much PII the moderation commands surface. The stored IP history is unaffected; this only changes what /seenip renders in chat.
/* /generated */

Placeholders

/* generated:placeholders */
PlaceholderRenders
%uxmessentials_jailed%Whether the player is jailed (yes/no).
%uxmessentials_moderation_ban_issuer%Who banned the player.
%uxmessentials_moderation_ban_reason%Why the player was banned.
%uxmessentials_moderation_ban_remaining%How long is left on the ban, in the compact 1d2h form.
%uxmessentials_moderation_ban_remaining_formatted%The same remaining ban, under the spelling a config may prefer.
%uxmessentials_moderation_banned%Whether the player is banned (yes/no).
%uxmessentials_moderation_frozen%Whether the player is frozen in place by staff (yes/no).
%uxmessentials_moderation_jail_issuer%Who jailed the player.
%uxmessentials_moderation_jail_name%The named jail the player is held in.
%uxmessentials_moderation_jail_online_only%Whether the jail counts down on online time rather than the wall clock (yes/no).
%uxmessentials_moderation_jail_reason%Why the player was jailed.
%uxmessentials_moderation_jail_remaining%How long is left on the jail, in whole seconds; permanent when only an unjail lifts it.
%uxmessentials_moderation_jail_remaining_formatted%The same remaining jail, in the compact 1d2h form.
%uxmessentials_moderation_jailed%Whether the player is jailed (yes/no).
%uxmessentials_moderation_mute_issuer%Who muted the player.
%uxmessentials_moderation_mute_reason%Why the player was muted.
%uxmessentials_moderation_mute_remaining%How long is left on the mute, in the compact 1d2h form.
%uxmessentials_moderation_mute_remaining_formatted%The same remaining mute, under the spelling a config may prefer.
%uxmessentials_moderation_muted%Whether the player is muted (yes/no).
%uxmessentials_moderation_warns%How many warnings the player carries.
%uxmessentials_muted%Whether the player is muted (yes/no).
/* /generated */

Notes

  • -s is a leading token, not a trailing flag. /ban Griefer -s using x-ray punishes silently: the action still happens and is still logged, chat just stays quiet. broadcast.silent-by-default flips the default, and staff who should see silent broadcasts need the receive node.
  • A bare /ban <player> opens the confirm menu. Supplying a reason acts immediately.
  • Warnings can punish by themselves. warnings.actions maps a count to an action, for example ["3:tempmute:1h", "5:tempban:1d"]. Escalation reads the live count, so /unwarn changes what the next warning triggers.
  • How long a staff member may punish for is a numbered tier, so a junior moderator can be capped at an hour while a senior one is not.
  • /staffrollback <staff> lifts a staff member's still-active punishments in one sweep, which is the tool for a bad batch of calls or a rogue moderator. /staffhistory shows what one staff member has issued.
  • /alts reads the whole connection history, not just the current address, so an account that shared an address months ago still surfaces.
  • Lockdown is the fast close-the-server switch: /lockdown on refuses every login except holders of the bypass node.
  • Jails are named locations you place with /setjail. jail-countdown decides whether a timed jail counts down only while the player is online or on the wall clock.

Related: Staff, Security, Vanish