Moderation icon

Moderation -----

Complete server moderation! Jails, Bans, Mutes, Freezing, Warnings, Invsee, Reports, and History!



[​IMG]
(Stolen image for attention)

A Skript I designed to complement my staffing needs that I couldn't find anywhere else without combining multiple plugins.

Features:
Timespan Support!
Banning
Muting
Jailing
Freezing
Warning
Invsee
Reporting
Command Spy
Immunity Permissions for staff
Clearable Moderation history for every user
Complete customizability - Every command, permission and message can be changed easily

This skript obviously requires the Skript plugin. Found here: GitHub Spigot
There are no other dependencies and can be ran without any addons.

(optional)

/ban username reason (timespan)
Bans the player for the specified reason. Timespan is optional.
/unban username reason
Unbans the player for the specified reason.

/mute username reason (timespan)
Mutes the player for the specified reason. Timespan is optional. They will not be able to chat, open unsigned books, or interact with/place signs/hanging signs.
/mute username
Unmutes the player (if muted). No reason is required.

/kick username reason
Kicks the player. The reason will also appear in the window after disconnect.

/freeze username reason (timespan)
Freezes the player for the specified reason. Timespan is optional. Frozen players can not move, click, attack, or take damage. They can still execute commands, which might mean their position changes, but they will still not be able to do anything but look around.
/freeze username
Unfreezes the player (if frozen). No reason is required.

/jail username (timespan) jail-name reason
Jails the player for the specified reason. Timespan is optional. While in jail they can not place or break blocks. They can still die and take damage, if that's what you want to accomplish
/unjail username
Unjails the player. No reason is required.
/setjail jail-name
This will set a jail location. For example, "Jail". When you use "/jail maddude174 Jail Hacking" it will teleport them there to server their sentence.
/deljail jail-name
Deletes a jail of that name.
/jails
Provides a list of currently set jails.

/invsee username
opens an inventory of the targeted player, includes off-hand, hotbar and equipped items

/history username (clear)
Displays all history logs for a user in chat. If "Clear" was added, a log will be made that shows when the history was cleared and by whom.

/warn username reason
Provides a warning to the player. Essentially, "Stop" that logs the warning.

/report username reason
sends a message to anyone with moderation.staff, also, if enabled, logs the report to the usernames history.
/reports
shows all open reports
/reports assign [ID]
assigns the report to you
/reports close [ID] [Resolution]
closes the report, if it was assigned to you. The resolution is, for example, "Perm banned" or anything that might show what actions that staff took to resolve the report. anything the staff member types will be recorded.
/reports history
shows all closed reports
/reports your-name
shows all reports assigned to you
/reports clear

clears everything report related. not meant to be used often.

/cspy
toggles spying on all issued commands

/moderation (banned, muted, frozen, jailed, all)
Displays anyone currently banned, muted, frozen or jailed
currently hard-coded to the script. there is no formatting or customization to this (yet?).
Usage
moderation.ban
moderation.ban.perm
/ban /unban
moderation.mute
moderation.mute.perm
/mute
moderation.kick
/kick
moderation.freeze
moderation.freeze.perm
/freeze
moderation.jail
moderation.jail.perm
/jail /unjail /jails
moderation.jail.manage
/setjail /deljail
moderation.invsee
/invsee
moderation.warn
/warn
moderation.history
/history
moderation.history.clear
/history PLAYER clear
moderation.moderation
/moderation
moderation.report
/report
moderation.staff
/reports (and associated variables)
moderation.report.clear
/reports clear
moderation.commandspy

/cspy
Immunity
moderation.immune.ban
moderation.immune.mute
moderation.immune.kick
moderation.immune.freeze
moderation.immune.jail
moderation.immune.invsee
moderation.immune.warn
moderation.immune.report
Code (Text):

# Moderation 6.5 #
# Made by Maddude174 #
# Please dm me on spigot if you encounter issues. https://www.spigotmc.org/members/maddude174.464600/
# Or, feel free to reach out to me on Discord. Maddude174#0428

options:


#            Message Format           #
### These are the messages always sent to the executor of the command. usually error or confirmation messages
# Usage Messages
  ban usage: Usage: Username Reason (Timespan)
  unban usage: Usage: Username Reason
  mute usage: Usage: Username Reason (Timespan)
  freeze usage: Usage: Username Reason (Timespan)
  jail usage: Usage: Username (Timespan) Jail-Name Reason
  unjail usage: Usage: Username
  kick usage: Usage: Username Reason
  warn usage: Usage: Username Reason
  invsee usage: Usage: Username
  history usage: Usage: Username (clear)
  moderation usage: Use jailed, banned, muted, frozen, or all
  report usage: Usage: Username [Message]

# Error Messages
  no name: No name provided!
  name taken: Name already exists!
  not online: &cThat player is not online!
  no player: &cNo player found!
  no reason: &cNo reason provided!
  no jails: No jails set!
  no jail: &cNo jail provided!
  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: %arg-1% is &cIMMUNE&r to this action.
  self target: &cYou can't do this to yourself!
  no history: No Moderation history for %arg-1%!
  no reports: No reports have been made yet
  no report id: No report ID set!
  no actions: No resolution action set!
  permission message: You don't have permission to do that!
  perm permission: &cYou don't have permission to permanently do that!
  no commands: You can not execute commands while jailed!

# Confirmation Messages
  set: &aSet!
  deleted: &cDeleted!
  confirm ban: %arg-1% has been &cBANNED
  confirm unban: %arg-1% has been &cUNBANNED
  confirm mute: %arg-1% has been &cMUTED
  confirm unmute: %arg-1% has been &cUNMUTED
  confirm freeze: %arg-1% has been &cFROZEN
  confirm unfreeze: %arg-1% has been &cTHAWED
  confirm jail: %arg-1% has been &cJAILED
  confirm unjail: %arg-1% has been &cUNJAILED
  confirm kick: %arg-1% has been &cKICKED
  confirm warn: %arg-1% has been &cWARNED
  history cleared: &aHistory for %arg-1% cleared.
  confirm report: %arg-1% has been&c REPORTED
  cmdspy on: &aEnabled!
  cmdspy off: &cDisabled!

### These are the messages sent to the target of the command. "You have been muted" ect

  muted: &cYou have been muted for &7%arg-2%&c. Expires: &7%{muted.%arg-1%.time}%
  unmuted: &aYou have been unmuted.
  jailed: &cYou have been jailed for &7%arg-4%&c. Expires: &7%{jailed.%arg-1%.time}%
  unjailed: &aYou have been released from jail.
  frozen: &cYou are frozen. &7Expires: %{frozen.%arg-1%.time}%
  unfrozen: &aYou have been thawed.
  warned: You have been warned for: %arg-2%

# These two appear in the window after being kicked from the server.
# The banned message will also display if they attempt to rejoin.

  banned: &C%arg-2%. &rExpires: &7%{banned.%arg-1%.time}%
  kick msg: &cYou were kicked for: &7%arg-2%

### These are server-wide broadcasts "maddude174 has been banned" ect

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

### These are the history log messages

  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%

  # Report messages
  staff reported message: %executor% &creported &r%arg-1% for %arg-2%.
  no open reports: There are no acive reports to display.
  close unassigned: You can not close a report that is not assigned!
  not assigned: You can not close a report you are not assigned to!
  already assigned: This report is already assigned to someone!
  assigned report: &6[Assigned Report]
  unassigned report: &c[Unassigned Report]
  closed report: &a[Closed Report]
  active reports: &6[Open Report]
  open report: &7ID: &e%loop-value% &7Reporter: &e%{report::%loop-value%::reporter}% &7Assigned: &e%{report::%loop-value%::assigned}% &7Player Reported: &e%{report::%loop-value%::player}% %nl%&7Time Reported: &e%{report::%loop-value%::time}% %nl%&7Reason: &e%{report::%loop-value%::reason}%
  resolved report: &7ID: &e%loop-value% &7Reporter: &e%{report::%loop-value%::reporter}% %nl%&7Player Reported: &e%{report::%loop-value%::player}% %nl%&7Time Reported: &e%{report::%loop-value%::time}% %nl%&7Reason: &e%{report::%loop-value%::reason}% %nl%&7Resolution: &e%{report::%loop-value%::resolution}%
  you assigned: You have been assigned to Report ID &e%arg-2%.
  closed: Report ID &e%arg-2% &7has been closed.
  no closed reports: &7There are no closed reports.


# This is the command spy message
  cmdspy message: &6%executor% &7issued &c/%full command%


#            Message Options           #
# [broadcast or chat or both]
  mute type: both
  freeze type: both
  jail type: both
  warn type: both

# These two are "enabled" and "disabled"
# as it doesnt make much sense to message them
# that they have been banned/kicked
# enables/disables server broadcasts

  ban type: enabled
  kick type: enabled


#         Feature Toggles           #
# [true or false]
# These will enable/disable features
# If you disable bans, you will not be able
# to ban or unban players

  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

# Can a player clear their own history?
  self clear: true

# Should player reports be logged to history?
  log reports: true


#             Commands              #
# You can change the command name here
# If you change /ban to /troll
# the new command will be:
# /troll maddude174 Trollz 1 day

  ban command: /ban
  unban command: /unban
  mute command: /mute
  kick command: /kick
  freeze command: /freeze
  jail command: /jail
  unjail command: /unjail
  deljail command: /deljail
  jails command: /jails
  setjail command: /setjail
  invsee command: /invsee
  history command: /history
  warn command: /warn
  report command: /report
  reports command: /reports
  cspy command: /cspy


#           Permissions             #
# These are prefixed with moderation.
# Meaning the full ban permission is:
# moderation.ban

  ban: ban
  perm ban: ban.perm
  mute: mute
  perm mute: mute.perm
  kick: kick
  freeze: freeze
  perm freeze: freeze.perm
  jail: jail
  perm jail: jail.perm
  manage jail: jail.manage
  invsee: invsee
  history: history
  clear history: history.clear
  warn: warn
  report: report
  clear reports: report.clear
  cspy: commandspy

  staff: staff


#       Immunity Permissions         #
# These are prefixed with moderation.
# Meaning the full ban immunity permission is:
# moderation.immune.ban

  immune ban: immune.ban
  immune mute: immune.mute
  immune kick: immune.kick
  immune freeze: immune.freeze
  immune jail: immune.jail
  immune invsee: immune.invsee
  immune warn: immune.warn
  immune report: immune.report

 

Planned Features:
Highest High Medium Low Lowest
Add a feature for teleporting jailed players to a random jail on death (Variety is the spice of life) - toggleable
Add a vanish (invisibility - probably wont disappear from tablist)

*Your suggestion here*




This is a free and public Skript. I do not care for credit or monetary gain. Feel free to use and edit this however you wish. Just don't reupload as your own work. If you would like custom features or additions, please message me, or post it on the discussions tab.
Resource Information
Author:
----------
Total Downloads: 682
First Release: Sep 2, 2023
Last Update: Jan 15, 2025
Category: ---------------
All-Time Rating:
1 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings