Skip to content

04. Moderation System

Finerus edited this page Aug 16, 2026 · 2 revisions

Warns, mutes, staff notes, connection tracking and the staff permission system, all in one place.

Config file: rpessentials-moderation.toml, plus rpessentials-core.toml for the permission system.

Staff Permission System (soon to be reworked)

Multi layered staff detection, checked in order:

  1. Scoreboard tags (staffTags in rpessentials-core.toml, default admin, moderator, staff, builder).
  2. Minimum OP level (opLevelBypass, 0 disables this check).
  3. LuckPerms groups (luckPermsStaffGroups, only used if useLuckPermsGroups = true). Results are cached for 30 seconds per player to avoid repeated LuckPerms lookups, and the cache is cleared on logout.

Warn System

Option Default Description
enableWarnSystem true Master switch.
notifyOnJoin false Notify players of their active warn count on login.
maxTempDays 30 Maximum duration for a temp warn, 0 disables the limit.
autoPurgeExpired true Automatically purge expired temp warns on login.
addedBroadcastFormat / removedBroadcastFormat see config Staff broadcast on warn add/remove, set to "" to disable.
  • /rpessentials warn add|temp|remove|list|info|clear|purge
  • Players check their own warns with /mywarn.
  • Warn IDs are small auto incremental integers, recalculated after every deletion so there are no gaps.
  • Optional auto mute: muteAutoFromWarns, muteAutoWarnCount, muteAutoDurationMinutes in the [Mute System] section.
  • Data stored in world/data/rpessentials/warns.json.

Mute System

  • /rpessentials mute <player> [minutes] [reason], /rpessentials unmute <player>.
  • 0 minutes means permanent.
  • Chat is intercepted before formatting, muted players get a message with the remaining time instead of being able to send anything.
  • Data stored in world/data/rpessentials/mutes.json.

Staff Notes

  • /rpessentials note add|list|remove|clear <player>.
  • Notes are shown in the RP Profile Manager GUI and in /rpessentials inspect.
  • noteMaxPerPlayer in [Staff Notes] caps the number of notes per player, 0 is unlimited.
  • Stored one JSON file per player under world/data/rpessentials/notes/.

Last Connection Tracking

Option Default Description
enableLastConnection true Master switch.
trackLogout true Also record disconnection time.
dateFormat dd/MM/yyyy HH:mm:ss Java SimpleDateFormat pattern.
  • /rpessentials lastconnection <player> and /rpessentials lastconnection list [count].
  • Cumulative playtime is tracked per player and shown in /rpessentials inspect and the RP Profile Manager.
  • Data stored in world/data/rpessentials/lastconnection.json.

Inspect

/rpessentials inspect <player> gives staff a single summary: status, nickname, role, UUID, licenses, active warns, mute status, last seen date, total playtime and staff notes.

Auto Unwhitelist

Automatic removal of inactive players from the vanilla whitelist. See the [Auto Unwhitelist] section.

Option Default Description
autoUnwhitelistEnabled false Master switch, disabled by default.
autoUnwhitelistDays 30 Inactivity threshold in days.
autoUnwhitelistExtraCommands [] Extra commands run per removed player, supports {player} and {uuid}.

Runs once a day at midnight, requires enableLastConnection = true. Online staff receive a clickable message to instantly re whitelist the player. Every removal is recorded in world/data/rpessentials/autounwhitelist-history.json.

See Commands for the full list.

Clone this wiki locally