-
Notifications
You must be signed in to change notification settings - Fork 0
04. Moderation System
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.
Multi layered staff detection, checked in order:
- Scoreboard tags (
staffTagsinrpessentials-core.toml, defaultadmin,moderator,staff,builder). - Minimum OP level (
opLevelBypass, 0 disables this check). - LuckPerms groups (
luckPermsStaffGroups, only used ifuseLuckPermsGroups = true). Results are cached for 30 seconds per player to avoid repeated LuckPerms lookups, and the cache is cleared on logout.
| 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,muteAutoDurationMinutesin the[Mute System]section. - Data stored in
world/data/rpessentials/warns.json.
-
/rpessentials mute <player> [minutes] [reason],/rpessentials unmute <player>. -
0minutes 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.
-
/rpessentials note add|list|remove|clear <player>. - Notes are shown in the RP Profile Manager GUI and in
/rpessentials inspect. -
noteMaxPerPlayerin[Staff Notes]caps the number of notes per player,0is unlimited. - Stored one JSON file per player under
world/data/rpessentials/notes/.
| 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 inspectand the RP Profile Manager. - Data stored in
world/data/rpessentials/lastconnection.json.
/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.
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.