Sueta

Moderation

7.0

Complete Staffing Toolkit and Player Moderation

·Plugin
Tested MC versions
1.21

A Complete, Customizable Minecraft Staff Toolkit
Bans • Mutes • Jails • Reports • GUI • History • Vanish

Moderation is a standalone Skript designed to give server administrators and staff teams the tools they need to manage players, handle reports, and keep track of moderation actions - without unnecessary bloat or a collection of separate plugins.

Originally developed to meet my own server's staffing needs, Moderation has evolved into a comprehensive moderation system with customizable messages, configurable commands, permission-based access, and persistent moderation records.

Version 7.0 introduces a major modernization, including a moderation GUI, an expanded vanish system, paged reports, and a series of fixes and internal improvements.

The project is free to use, modify, and adapt to your server.

Features

Player Moderation

  • Bans & Unbans - Issue temporary or permanent bans.
  • Mutes & Unmutes - Restrict chat, unsigned books, and sign interactions.
  • Jails - Create named jail locations and assign timed or permanent sentences.
  • Freezing - Prevent movement, clicking, attacking, and taking damage while frozen.
  • Warnings - Warn players and record the action.
  • Kicks - Remove players with a specified reason.
  • Inventory Inspection - Inspect a player's inventory, including their equipment and off-hand.


Reports & Staff Tools

  • Player Reports - Let players report rule violations directly to staff.
  • Report Assignment - Assign reports to individual moderators.
  • Report Resolution - Close assigned reports with a recorded resolution.
  • Paged Reports - Browse open and closed reports in manageable pages.
  • Moderation History - Review recorded actions, reasons, and staff responsible.
  • Command Spy - Monitor commands issued by players.
  • Vanish - Hide from ordinary players, with join/quit silence and tab-list hiding.

️Moderation GUI - New in 7.0
Manage players through an inventory interface instead of relying exclusively on commands.

  • Browse a player list.
  • Search for players.
  • Open a dedicated action menu for a selected player.
  • Access moderation actions through the GUI.

Use /moderation to open the interface, or /moderation <player> to access a specific player's action menu.

Built for Customization

  • Configurable messages and formatting.
  • Customizable command names.
  • Configurable permission nodes.
  • Feature toggles to disable systems you do not need.
  • Separate permissions for permanent punishments.
  • Immunity permissions for protected players.
  • Configurable staff broadcasts and player notifications.


Requirements

  • Skript: Github Spigot
  • Addons: No additional Skript addons are required.

This is a Skript, not a plugin. Install Skript first, then place Moderation in your server's plugins/Skript/scripts/ directory and load it using /sk reload.

Commands
The default commands are configurable in the options section.

Commands

Command Description

  • /ban <player> <reason> [timespan]
    Ban a player
  • /unban <player> <reason>
    Remove a ban
  • /mute <player> <reason> [timespan]
    Mute a player
  • /kick <player> <reason>
    Kick a player
  • /freeze <player> <reason> [timespan]
    Freeze a player
  • /jail <player> [timespan] <jail> <reason>
    Jail a player
  • /unjail <player>
    Release a player
  • /setjail <name>
    Set a jail location
  • /deljail <name>
    Delete a jail location
  • /jails
    List configured jails
  • /warn <player> <reason>
    Warn a player
  • /invsee <player>
    Inspect a player's inventory
  • /history <player> [clear]
    View or clear moderation history
  • /report <player> <reason>
    Report a player
  • /reports
    Browse reports
  • /reports assign <ID>
    Assign a report to yourself
  • /reports close <ID> <resolution>
    Close an assigned report
  • /reports history [page]
    Browse closed reports
  • /cspy
    Toggle command spy
  • /vanish
    Toggle vanish
  • /moderation [player]
    Open the moderation GUI

Timespans support readable durations, such as 1 day. Permanent punishments require permanent-punishment permission.


Permissions

All permissions use the moderation. prefix.

Permissions

Permission Purpose

  • moderation.ban
    Ban and unban
  • moderation.ban.perm
    Permanent bans
  • moderation.mute
    Mute and unmute
  • moderation.mute.perm
    Permanent mutes
  • moderation.kick
    Kick players
  • moderation.freeze
    Freeze and unfreeze
  • moderation.freeze.perm
    Permanent freezes
  • moderation.jail
    Jail and release players
  • moderation.jail.perm
    Permanent jails
  • moderation.jail.manage
    Manage jail locations
  • moderation.warn
    Issue warnings
  • moderation.invsee
    Inspect inventories
  • moderation.history
    View moderation history
  • moderation.history.clear
    Clear moderation history
  • moderation.report
    Submit reports
  • moderation.staff
    Access staff report management
  • moderation.report.clear
    Clear report data
  • moderation.commandspy
    Use command spy
  • moderation.vanish
    Use vanish
  • moderation.gui
    Access the moderation GUI

Immunity Permissions
Use the following permissions to protect specific roles from corresponding moderation actions:

  • moderation.immune.ban
  • moderation.immune.mute
  • moderation.immune.kick
  • moderation.immune.freeze
  • moderation.immune.jail
  • moderation.immune.invsee
  • moderation.immune.warn
  • moderation.immune.report
  • moderation.immune.vanish

Grant permissions carefully. Permanent-punishment permissions and immunity permissions should generally be restricted to trusted staff.

️Customization

Customization

# ------------------------------------------------------------
# Message Formats
# ------------------------------------------------------------
# Executor feedback
ban usage: &cUsage: &7%command% <player> <reason> [timespan]
unban usage: &cUsage: &7%command% <player> <reason>
mute usage: &cUsage: &7%command% <player> <reason> [timespan]
freeze usage: &cUsage: &7%command% <player> <reason> [timespan]
jail usage: &cUsage: &7%command% <player> [timespan] <jail> <reason>
unjail usage: &cUsage: &7%command% <player>
kick usage: &cUsage: &7%command% <player> <reason>
warn usage: &cUsage: &7%command% <player> <reason>
invsee usage: &cUsage: &7%command% <player>
history usage: &cUsage: &7%command% <player> [clear]
moderation usage: &cUsage: &7/moderation <banned|jailed|muted|frozen|all>
report usage: &cUsage: &7%command% <player> <reason>
vanish usage: &cUsage: &7%command%
modgui usage: &cUsage: &7%command% [player]

# Error messages
no name: &cNo name provided!
name taken: &cThat jail name already exists!
not online: &cThat player is not online!
no player: &cNo player found!
no reason: &cNo reason provided!
no jails: &cNo jails have been set!
no jail: &cNo jail provided or jail does not exist!
not banned: &c%arg-1% is not banned!
not jailed: &c%arg-1% is not jailed!
already banned: &c%arg-1% is already banned!
already jailed: &c%arg-1% is already jailed!
self clear error: &cYou cannot clear your own history!
immunity message: &c%arg-1% is &4IMMUNE&c to this action.
self target: &cYou can't do this to yourself!
no history: &cNo moderation history for %arg-1%!
no reports: &cNo reports have been made yet.
no report id: &cNo report ID provided!
no actions: &cNo resolution action provided!
permission message: &cYou don't have permission to do that!
perm permission: &cYou don't have permission for permanent punishments!
no commands: &cYou cannot execute commands while jailed!
already vanished: &cYou are already vanished!
not vanished: &cYou are not vanished!

# Confirmation messages
set: &aJail set successfully!
deleted: &cJail deleted!
confirm ban: &a%arg-1% has been &cBANNED&a.
confirm unban: &a%arg-1% has been &aUNBANNED&a.
confirm mute: &a%arg-1% has been &cMUTED&a.
confirm unmute: &a%arg-1% has been &aUNMUTED&a.
confirm freeze: &a%arg-1% has been &cFROZEN&a.
confirm unfreeze: &a%arg-1% has been &aTHAWED&a.
confirm jail: &a%arg-1% has been &cJAILED&a.
confirm unjail: &a%arg-1% has been &aUNJAILED&a.
confirm kick: &a%arg-1% has been &cKICKED&a.
confirm warn: &a%arg-1% has been &cWARNED&a.
history cleared: &aHistory for %arg-1% cleared.
confirm report: &a%arg-1% has been &cREPORTED&a.
cancelled: &7Action cancelled.
cmdspy on: &aCommand spy enabled!
cmdspy off: &cCommand spy disabled!
vanish on: &aYou are now vanished.
vanish off: &cYou are no longer vanished.

# Messages to the target player
muted: &cYou have been muted for &7%arg-2%&c. Expires: &7%{muted::%{_uuid}%::time}%
unmuted: &aYou have been unmuted.
jailed: &cYou have been jailed for &7%arg-4%&c. Expires: &7%{jailed::%{_uuid}%::time}%
unjailed: &aYou have been released from jail.
frozen: &cYou are frozen. Expires: &7%{frozen::%{_uuid}%::time}%
unfrozen: &aYou have been thawed.
warned: &cYou have been warned for: &7%arg-2%
banned: &c%arg-2% &rExpires: &7%{banned::%{_uuid}%::time}%
kick msg: &cYou were kicked for: &7%arg-2%

# Server-wide broadcasts
ban broadcast: &7%arg-1% has been &cBANNED&7 by &f%executor%&7! Reason: &f%arg-2%
unban broadcast: &7%arg-1% has been &aUNBANNED&7 by &f%executor%&7!
automatic unbanned broadcast: &7%loop-value% has been &aUNBANNED&7 (time served)!
mute broadcast: &7%arg-1% has been &cMUTED&7 by &f%executor%&7! Reason: &f%arg-2%
unmute broadcast: &7%arg-1% has been &aUNMUTED&7 by &f%executor%&7!
automatic unmuted broadcast: &7%loop-value% has been &aUNMUTED&7 (time served)!
freeze broadcast: &7%arg-1% has been &cFROZEN&7 by &f%executor%&7! Reason: &f%arg-2%
unfreeze broadcast: &7%arg-1% has been &aTHAWED&7 by &f%executor%&7!
automatic unfrozen broadcast: &7%loop-value% has been &aTHAWED&7 (time served)!
jail broadcast: &7%arg-1% has been &cJAILED&7 by &f%executor%&7! Reason: &f%arg-4%
unjail broadcast: &7%arg-1% has been &aUNJAILED&7 by &f%executor%&7!
automatic unjailed broadcast: &7%loop-value% has been &aUNJAILED&7 (time served)!
warn broadcast: &7%arg-1% has been &cWARNED&7 by &f%executor%&7! Reason: &f%arg-2%
kick broadcast: &7%arg-1% has been &cKICKED&7 by &f%executor%&7! Reason: &f%arg-2%

# History log lines
ban log: %{_timestamp}% - &cBANNED&r by &7%executor%&r reason: %arg-2%
unban log: %{_timestamp}% - &aUNBANNED&r by &7%executor%&r reason: %arg-2%
automatic unban log: %{_timestamp}% - &aUNBANNED&r automatically (time expired)
mute log: %{_timestamp}% - &cMUTED&r by &7%executor%&r reason: %arg-2%
unmute log: %{_timestamp}% - &aUNMUTED&r by &7%executor%&r
automatic unmute log: %{_timestamp}% - &aUNMUTED&r automatically (time expired)
freeze log: %{_timestamp}% - &cFROZEN&r by &7%executor%&r reason: %arg-2%
unfreeze log: %{_timestamp}% - &aTHAWED&r by &7%executor%&r
automatic unfreeze log: %{_timestamp}% - &aTHAWED&r automatically (time expired)
jail log: %{_timestamp}% - &cJAILED&r by &7%executor%&r reason: %arg-4%
unjail log: %{_timestamp}% - &aUNJAILED&r by &7%executor%&r
automatic unjail log: %{_timestamp}% - &aUNJAILED&r automatically (time expired)
warn log: %{_timestamp}% - &cWARNED&r by &7%executor%&r reason: %arg-2%
kick log: %{_timestamp}% - &cKICKED&r by &7%executor%&r reason: %arg-2%
invsee log: %{_timestamp}% - &cINVSEE&r by &7%executor%&r
history cleared log: %{_timestamp}% - &aHISTORY CLEARED&r by %executor%
report log: %{_timestamp}% - &cREPORTED&r by &7%executor%&r for %arg-2%
vanish log: %{_timestamp}% - &bVANISHED&r by &7%executor%&r
unvanish log: %{_timestamp}% - &bUNVANISHED&r by &7%executor%&r

# Report system messages
staff reported message: &6[Report] &f%executor% &creported &f%arg-1% &7for &f%arg-2%&7.
no open reports: &7There are no open reports.
close unassigned: &cYou cannot close an unassigned report!
not assigned: &cYou are not assigned to this report!
already assigned: &cThis report is already assigned!
assigned report: &6[Assigned Report]
unassigned report: &c[Unassigned Report]
closed report: &a[Closed Report]
active reports: &6[Open Report]
you assigned: &aYou have been assigned to Report ID &e%arg-2%&a.
closed: &aReport ID &e%arg-2% &ahas been closed.
no closed reports: &7There are no closed reports.
page header: &8&m----------&r &6Reports &7(Page %page%/%max%) &8&m----------
page footer: &7Use &e/reports %type% <page> &7to navigate.

# Command spy
cmdspy message: &6%executor% &7issued &c/%full command%

# Vanish silent messages
vanish join silent: &8[Silent] &7%player% joined (vanished)
vanish quit silent: &8[Silent] &7%player% left (vanished)
# Vanish fake leave/join messages
join message: &a%player% has joined the game
left message: &c%player% has left the game

# ------------------------------------------------------------
# GUI Prompts
# ------------------------------------------------------------
gui search prompt: &bType a player name to search (or &fcancel&b)
gui ban prompt: &cType ban reason (or &fcancel&c). Optional: add timespan at end e.g. &f1d
gui warn prompt: &eType warn reason (or &fcancel&e)
gui kick prompt: &7Type kick reason (or &fcancel&7)
gui jail prompt: &5Type the jail reason for &f%target% &5(or &fcancel&5)
gui target lost: &cTarget lost. Open the GUI again.
gui lists empty: &7None

# ------------------------------------------------------------
# Message Options (broadcast / chat / both)
# ------------------------------------------------------------
mute_type: both
freeze_type: both
jail_type: both
warn_type: both
ban_type: enabled
kick_type: enabled

# ------------------------------------------------------------
# Feature Toggles
# ------------------------------------------------------------
ban enabled: true
mute enabled: true
freeze enabled: true
jail enabled: true
kick enabled: true
warn enabled: true
history enabled: true
report enabled: true
commandspy enabled: true
vanish enabled: true
modgui enabled: true
self clear: true
log reports: true
reports per page: 5
gui players per page: 28

What's New in 7.0?
Version 7.0 is a substantial update to 6.5.

Similar projects

Plugin →