# Reporting

Staff++ implemented a new reporting system. The new system is a bit different from the old Staff+ reporting system. We now support reporting online and offline players. Reporting events can be send to discord using the Staff++ Discord Integration plugin. Below I will explain how to set up and use the reporting system.

## Configuration

The configuration is pretty self-explanatory. Make sure you have this section inside your configuration file and enable the reporting module by setting `enabled` to `true`

```yaml
reports-module:
  chatchannels:
      enabled: false
      open-on: IN_PROGRESS
      close-on: REJECTED;RESOLVED

  # Whether or not the plugin will use "/report" features.
  enabled: true

  # The sound that is played to staff when someone is reported.
  # Set to "NONE" to disable.
  sound: ORB_PICKUP

  # The cooldown, in seconds, for using "/report".
  # This is disabled for players with the "permissions.report" permission.
  cooldown: 10

  # Whether or not the player that reported another player will be visible in GUIs.
  show-reporter: true

  # Whether or not a staff member must provide a reason when resolving/rejecting a report
  closing-reason-enabled: true

  # Types of reports. When configured the reporter will see a UI where he must choose the type
  report-types: []
  fixed-reason: false
  fixed-reason-culprit: false
  reasons: []

  reporter-notifications:
      # The reporter will be notified the moment he comes online that he has reports OPEN or IN_PROGRESS
      notify-on-join: true
      # Enable status change notifications. Whenever a staff member changes the status to one of the specified statuses, the reporter will be notified (if he is online).
      # Statuses must be semi-colon separated
      status-change-notifications: IN_PROGRESS;RESOLVED;REJECTED
  # command hooks
  accept-commands: []
  reject-commands: []
  reopen-commands: []
  resolve-commands: []
```

## Report commands

#### players

* `/reportplayer [playerName] [message]` Report a specific player.
* `/report [message]` Report something but don't link a specific player to it.
* `/my-reports` Open the GUI to show the reports you created.

#### staff members

* `/reports` Used to manage reports. You can list or clear all the reports of a player
* `/manage-reports` Open the manage reports GUI.
* `/find-reports` [Search reports](/features/reporting/finding-reports.md) by different criteria

## Report permissions

#### Player permissions

Following permissions are used to allow players creating reports

* `staff.reports.report` Permission to create a report
* `staff.reports.view-my-reports` Permission to open the my-reports GUI
* `staff.reports.bypass` Permission to bypass getting reported

#### Staff permissions

* `staff.reports.manage.view` Permission to view all reports. If a staff member does not have this perm, he won't be able to manage reports
* `staff.reports.manage.delete` Permission to permanently delete reports
* `staff.reports.manage.accept` Permission to accept reports
* `staff.reports.manage.resolve` Permission to resolve reports
* `staff.reports.manage.close` Permission to close reports
* `staff.reports.manage.reject` Permission to reject reports
* `staff.reports.manage.teleport` Permission to teleport to a report creation location
* `staff.reports.manage.reopen-other` Permission to un-assign other staff members from their reports
* `staff.report.update.notifications` Permission for receiving notifications when a report is accepted/deleted/closed

## Report lifecycle

### OPEN

When a report first gets created it get the status `OPEN`, open reports can be picked up by any staff member with the correct permission.

### IN\_PROGRESS

After a staff member picks up a report it gets placed into the status `IN_PROGRESS`. When one member of staff picks up a report no other member can handle this report. The staff member who picks up the report gets assigned to the report. He can un-assign himself from the report through the GUI. If he un-assigns himself someone else can pick up the report again. \
Staff members with the `staff.reports.manage.reopen-other` can also un-assign other staff members from their reports.

### RESOLVED

A staff member can manage reports assigned to him. If he deems the report to be completely handled he can resolve the report. When a report is resolved, other staff members can view it in the closed reports GUI.

### REJECTED

A staff member can manage reports assigned to him. If he deems the report to be incorrect, or spam, or just not enough information he can reject the report. When a report is rejected, other staff members can view it in the closed reports GUI.

## Screenshots

![manage reports](/files/-MU5QM2xdQq4HSfBHu4A)

![Unresolved reports GUI](/files/-MU5QQXlCPUqZq8PjqMp)

![Manage a report](/files/-MU5QV6NpTs5UwXwuvOH)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.staffplusplus.org/features/reporting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
