Reports
Players report other players with /report. Staff are notified in-game and handle the report in the dashboard: claim it, teleport there or watch the replay, ban or mute, close. In-game there are no longer any report commands for staff – /reportsystem has been removed.
License: reports is part of the free base by default (together with core, punishments, lobby). The related replay module needs an EternalSystem license. Which modules are free can change – the dashboard shows locked modules grayed out.
Enabling
- Module key:
reports(no dependencies), see Modules & Presets. - In a network, also enable it on the proxy – that is where
/reportruns. The reason menu is opened by the Spigot server the reporter is on;reportsmust be on there as well. - For recordings: module
replayon the game servers (see Replays). For the chat history: modulechatlog. Ban reasons and punishments: see Bans & Mutes. - Dashboard actions need the REST API:
api.enabled: trueandapi.shared-secretinconfig.yml.
/report
| Command | Permission | Description |
|---|---|---|
/report <Spieler> | eternal.report | Opens the reason menu (a chest with one icon per reason) |
/report <Spieler> <Nr oder ID> [Kommentar] | eternal.report | Reports directly. Nr = position in the list (starting at 1), ID = id from report-reasons (e.g. hacking); [Kommentar] = comment |
eternal.report has the default level Alle ("All"; in plugin.yml: default: true). You cannot report yourself. Comments are only possible with the command form; the menu does not send a comment.
Report reasons (reasons.yml)
report-reasons:
- id: hacking
label: "Hacking / Cheating"
material: IRON_SWORD
slot: 0
- id: chat-insult
label: "Beleidigung im Chat"
material: WRITABLE_BOOK
slot: 11
- id: other
label: "Sonstiges"
material: BOOK
slot: 24
| Field | Meaning |
|---|---|
id | Unique text key, also used for /report <Spieler> <id> |
label | Display in the menu, in the dashboard and in the notification |
material | Bukkit material for the icon. Typo → PAPER and a warning in the log |
slot | Position in the menu (chest with 3 rows, 0–26). -1 = automatic |
As with the ban reasons, the reasons.yml on the proxy is authoritative (see Bans & Mutes).
config.yml
reports:
cooldown-seconds: 30 # waiting time between two reports from one player
max-open-per-reporter: 3
notify-online-staff: true # in-game notification to staff
teleport-on-claim: true
max-open-per-reporter and teleport-on-claim are read in the current version but not evaluated. There is currently no limit on open reports per player; teleporting always goes through the TP button in the dashboard.
The cooldown applies per player and server instance (proxy or Spigot); it is not stored in the database and restarts after a reboot.
Staff notification
With notify-online-staff: true, all online staff members with eternal.report.notify receive the line from report-staff-notify:
NEUER REPORT #42 » Steve (Hacking / Cheating) von Alex
(German default text: "NEW REPORT #42 » Steve (Hacking / Cheating) by Alex".)
- Anyone who turns off Reports empfangen ("Receive reports") in
/settingsno longer gets notifications (see Settings). - If the target is currently nicked, the notification shows the nickname so the disguise is not blown. The dashboard shows the real name.
Recording on report
If the replay module is active on the reported player's server, the report freezes the last replay.retention-seconds (default 60 s) and then keeps recording until the report is claimed/closed or replay.max-followup-seconds (default 600 s) is reached. If the reporter is on a different server than the reported player, the proxy forwards the recording request to the correct server. Details: Replays.
Handling in the dashboard (Moderation → Reports)
Permission: eternal.report.handle (default level Team).
Tabs: Aktiv ("Active"), Offen ("Open"), In Bearbeitung ("In progress"), Geschlossen ("Closed"), Alle ("All"). Per report:
| Button | Permission | Effect |
|---|---|---|
| Annehmen ("Claim") | eternal.report.handle | The report is yours (status „In Bearbeitung“, "in progress") |
| TP | eternal.report.handle | If you are online in-game, the proxy connects you to the reported player's server. If a replay exists there, it starts; without the replay module you are teleported live to the target |
| Bannen ("Ban") | eternal.ban | Dialog with the allowed reasons; bans, closes the report and links it to the ban. The player is kicked immediately |
| Muten ("Mute") | eternal.mute | Like Ban, as a mute |
| Schließen ("Close") | eternal.report.handle | Close with a justification |
| Replay im Browser ("Replay in browser") | eternal.replay.rewatch | 3D player in the dashboard |
Which reasons appear in the ban/mute dialog is controlled by the permissions eternal.ban.reason.<id> (see Bans & Mutes). The option Sonstiges ("Other") allows a free label and duration.
The dashboard buttons only take effect in-game if you are logged in with your Minecraft account. A static API key has no player – claiming and TP are not possible with it.
Chat history for the report
For chat reports (insult, spam, advertising …) you can expand the chat history around the time of the report. Permission: eternal.web.player.view, requirement: module chatlog.
chatlog:
report-context-before: 10 # messages before the report
report-context-after: 10 # messages after the report
report-context-window-seconds: 120 # how long to wait for the "after" messages
Once the window has expired, the excerpt is saved with the report and no longer changes.
What happens to the replay
| Outcome | Replay |
|---|---|
| Ban from the report | kept until the ban is lifted via the dashboard |
| Mute from the report | kept |
| Closed without punishment | server file and web copy are deleted |
Permissions
| Permission | Default level | Purpose |
|---|---|---|
eternal.report | All | /report |
eternal.report.handle | Team | Handle reports in the dashboard |
eternal.report.notify | Team | In-game notification for new reports |
eternal.replay.rewatch | Team | Watch replays |
eternal.web.player.view | Team | Chat history for reports, player profiles |
In-game, the plugin.yml defaults apply (eternal.report: true, eternal.report.notify: op) as long as Eternal Perms does not say otherwise. See Permissions reference.
Common pitfalls
- Menu does not open:
reportsis on on the proxy but not on the reporter's Spigot server – the menu is always opened on the backend. - No replay for the report:
replayis off on the reported player's server, the player was already offline, orserver-nameinconfig.ymldoes not match the server name in the proxy. The message „Kein Replay: Modul replay ist auf … nicht aktiv — Live-TP“ ("No replay: module replay is not active on … — live TP") points to this. - TP does nothing: you are not online in-game, or the API connection (
api.enabled,shared-secret) is missing on the server. - Notifications are missing:
eternal.report.notifyis missing in the rank, or „Reports empfangen“ is off in/settings.