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.

Note

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 /report runs. The reason menu is opened by the Spigot server the reporter is on; reports must be on there as well.
  • For recordings: module replay on the game servers (see Replays). For the chat history: module chatlog. Ban reasons and punishments: see Bans & Mutes.
  • Dashboard actions need the REST API: api.enabled: true and api.shared-secret in config.yml.

/report

CommandPermissionDescription
/report <Spieler>eternal.reportOpens the reason menu (a chest with one icon per reason)
/report <Spieler> <Nr oder ID> [Kommentar]eternal.reportReports 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
FieldMeaning
idUnique text key, also used for /report <Spieler> <id>
labelDisplay in the menu, in the dashboard and in the notification
materialBukkit material for the icon. Typo → PAPER and a warning in the log
slotPosition 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
Warning

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 /settings no 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:

ButtonPermissionEffect
Annehmen ("Claim")eternal.report.handleThe report is yours (status „In Bearbeitung“, "in progress")
TPeternal.report.handleIf 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.banDialog with the allowed reasons; bans, closes the report and links it to the ban. The player is kicked immediately
Muten ("Mute")eternal.muteLike Ban, as a mute
Schließen ("Close")eternal.report.handleClose with a justification
Replay im Browser ("Replay in browser")eternal.replay.rewatch3D 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.

Note

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

OutcomeReplay
Ban from the reportkept until the ban is lifted via the dashboard
Mute from the reportkept
Closed without punishmentserver file and web copy are deleted

Permissions

PermissionDefault levelPurpose
eternal.reportAll/report
eternal.report.handleTeamHandle reports in the dashboard
eternal.report.notifyTeamIn-game notification for new reports
eternal.replay.rewatchTeamWatch replays
eternal.web.player.viewTeamChat 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: reports is 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: replay is off on the reported player's server, the player was already offline, or server-name in config.yml does 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.notify is missing in the rank, or „Reports empfangen“ is off in /settings.