Skip to content

Moderation

Reece Williams edited this page Sep 2, 2026 · 2 revisions

Moderation

Staff and chat control tools: mute chat, freeze players, clear chat, spy on commands, protect dangerous commands, reports, and more. Everything lives under the Moderation: section of config.yml.

Needs: nothing for most. StaffAFK needs LuckPerms.

MuteChat

Toggles global chat on/off with /mutechat. While muted, anyone without the bypass perm has their chat cancelled.

  • Config: Moderation.MuteChat
  • Default: on
  • Command: /mutechat
  • Perms: mutechat.use (run it), mutechat.bypass (talk while muted)
  • Broadcasts the on/off message to everyone. %player% is who toggled it.

CommandSpy

Lets staff watch other players' commands live. Toggle it per-staffer with /commandspy enable|disable. Watchers see CMDSPY name> /cmd for every command run (except their own).

  • Config: Moderation.CommandSpy
  • Default: off
  • Command: /commandspy
  • Perms: commandspy.use (toggle), commandspy.exempt (your commands don't show up to watchers)
  • ignored_commands skips certain commands from being spied.
  • Placeholder: %stools_commandspy% returns on or off for whether you're watching.
CommandSpy:
  Enabled: false
  permission: commandspy.use
  ignored_commands:
  - 'msg'

CommandProtect

Blocks a configurable list of dangerous commands (think /op, /pl, /lp, and similar) so random players can't run them. Setup lives in its own CommandProtect.yml file, not the main config.

  • Config: Moderation.CommandProtect (just the on/off toggle), rest in CommandProtect.yml
  • Default: on

In CommandProtect.yml:

  • ProtectedCommands - the commands to block (defaults include /op, /pl, /ver, /about, /icanhasbukkit, /lp, /luckperms)
  • AllowedPlayers - names or UUIDs that can still run them
  • password - players run /commandprotect login <password> to allow themselves at runtime (/commandprotect logout to remove). Too many wrong tries kicks them.

ClearChat

/clearchat pushes chat history off everyone's screen, then broadcasts a "cleared by X" message.

  • Config: Moderation.ClearChat
  • Default: on
  • Command: /clearchat
  • Perms: clearchat.use
  • lines is how many blank lines to send (default 100). msg is the broadcast, %player% is who cleared it.

NoColonInCommands

Blocks the namespaced plugin:command form so players can't run something like /essentials:fly to dodge your /fly alias or block.

  • Config: Moderation.NoColonInCommands
  • Default: on
  • Perms: colon.use bypasses the block
  • Only blocks when the colon is in the first word (the namespace part), not in later arguments.

Freeze

/freeze <player> (alias /ss) locks a player in place. While frozen they can't move, drop or pick up items, take damage, chat, or teleport. Run it again to unfreeze.

  • Config: Moderation.Freeze
  • Default: off
  • Command: /freeze (alias /ss)
  • Perms: Freeze.use
  • Sends the configured Message lines to the frozen player. Supports the %SUPPORT% variable (e.g. your discord link). Alerts staff if a frozen player logs out or back in. Works on offline players too.

WhitelistBypass

Lets perm-holders join even when the server whitelist would kick them, and optionally blocks /whitelist add from being run in-game.

  • Config: Moderation.WhitelistBypass
  • Default: on
  • Perms: whitelist.bypass (join past the whitelist)
  • DisableWhitelistCMDInGame: true stops players running /whitelist add in-game (console still works). Message is the kick message for non-whitelisted players, %player% supported.

Report

/report <player> <reason> pings online staff. Has a per-player cooldown.

  • Config: Moderation.Report
  • Default: off
  • Command: /report
  • Perms: report.notify (receive the reports)
  • Cooldown in seconds (default 30), CooldownMSG shown while on cooldown (%timeleft%), ReportSuccess is the staff broadcast (%reporter%, %offender%, %reason%). Can't report yourself.

StaffAFK

/staffafk swaps a staff member into a dedicated AFK rank so they visually go "offline" from their staff rank, then swaps them back when they run it again. It remembers their real rank while they're AFK. This uses LuckPerms, so you need LuckPerms installed for it to work.

  • Config: Moderation.StaffAFK
  • Default: off
  • Command: /staffafk
  • Perms: staffafk.use
  • StaffAFKGroup is the AFK rank name, StaffGroups is which ranks count as staff. Placeholder: %stools_staffafk% returns true/false.
StaffAFK:
  Enabled: false
  StaffAFKGroup: staffafk
  Permission: staffafk.use
  GiveAFK:
  - 'lp user %player% parent add %StaffAFKGroupName% server=global'
  - 'lp user %player% parent remove %UsersPrimaryGroup% server=global'
  RemoveAFK:
  - 'lp user %player% parent add %PlayerConfigPrimarygroup% server=global'
  - 'lp user %player% parent remove %StaffAFKGroupName% server=global'

TPAll

/tpall teleports every online player to you, with a slight random stagger so it's not all at once.

  • Config: Moderation.TPAll
  • Default: on
  • Command: /tpall
  • Perms: tools.tpall
  • No config beyond the toggle. Broadcasts a message when triggered.

Clone this wiki locally