# 🚨 Report

It allows players to report other players, notifies staff members, supports a list and resolve workflow, and can optionally send report logs to Discord through webhooks.

***

### What It Does

The Report module adds a proxy-side reporting system to your network.

It can be used for:

* Player reports
* Staff report notifications
* Pending report management
* Report list workflow
* Report resolve workflow
* Discord webhook logging
* Cooldown bypass
* Staff hidden and bypass behavior, depending on configuration

***

### When To Enable It

Enable this module if you want players to report rule breakers directly from the network.

This module is useful for:

* Moderation teams
* Survival networks
* Minigame networks
* Competitive servers
* Networks with active staff teams
* Networks that want Discord report logs

***

### Requirements

The Report module can work without external dependencies.

Discord webhooks are optional.

| Dependency       | Required | Purpose                                        |
| ---------------- | -------- | ---------------------------------------------- |
| Redis            | No       | Not required.                                  |
| MySQL            | No       | Not required.                                  |
| MongoDB          | No       | Not required.                                  |
| PacketEvents     | No       | Not required.                                  |
| Discord Webhooks | Optional | Used for sending submitted reports to Discord. |
| PlaceholderAPI   | No       | Not required.                                  |

{% hint style="info" %}
Pending reports are stored in memory.

If the proxy restarts, pending in-memory report data may be cleared depending on your setup.
{% endhint %}

***

### Configuration File

The Report module configuration file is located at:

```
plugins/NexusProxy/modules/report/report.yml
```

This file can contain settings for:

* Module status
* Command names
* Command aliases
* Permissions
* Report formats
* Staff notification messages
* Cooldowns
* Discord webhook settings
* Pending report behavior
* Resolve behavior
* Staff hidden behavior
* Bypass behavior

{% hint style="warning" %}
Command names and aliases may be configurable in the module file.

The commands shown here are the default commands.
{% endhint %}

***

### Default Commands

| Command                     | Description                                                          |
| --------------------------- | -------------------------------------------------------------------- |
| `/report <player> <reason>` | Submits a report against a player.                                   |
| `/reports list`             | Shows pending reports, depending on configuration.                   |
| `/reports resolve`          | Resolves a pending report, depending on configuration.               |
| `/reports notify`           | Toggles or manages report notifications, depending on configuration. |

***

### Permissions

| Permission                          | Description                                                              |
| ----------------------------------- | ------------------------------------------------------------------------ |
| `nexusproxy.report.command`         | Allows usage of the player report command.                               |
| `nexusproxy.report.admin`           | Allows access to report administration features.                         |
| `nexusproxy.report.receive`         | Allows staff to receive report notifications.                            |
| `nexusproxy.report.cooldown.bypass` | Allows bypassing report cooldowns.                                       |
| `nexusproxy.staff.hidden`           | Allows hidden staff behavior, depending on configuration.                |
| `nexusproxy.staff.bypass`           | Allows bypassing staff-related restrictions, depending on configuration. |

***

### Recommended LuckPerms Setup

#### Default players

```
/lp group default permission set nexusproxy.report.command true
```

#### Staff

```
/lp group staff permission set nexusproxy.report.receive true
/lp group staff permission set nexusproxy.report.admin true
```

#### Admin

```
/lp group admin permission set nexusproxy.report.cooldown.bypass true
/lp group admin permission set nexusproxy.staff.hidden true
/lp group admin permission set nexusproxy.staff.bypass true
```

{% hint style="warning" %}
Report admin permissions should only be given to staff members who handle moderation.
{% endhint %}

***

### Player Reports

Players can report another player using:

```
/report <player> <reason>
```

Example:

```
/report Steve Cheating in PvP
```

The report is sent to staff members with the correct notification permission.

***

### Staff Notifications

Staff members can receive report notifications when a player submits a report.

Useful permission:

```
nexusproxy.report.receive
```

This should be assigned to staff groups responsible for moderation.

***

### Report List

Staff can view pending reports using:

```
/reports list
```

This helps staff see active reports that still need attention.

{% hint style="info" %}
Pending reports are stored in memory.

Restarting the proxy may clear pending report data depending on your setup.
{% endhint %}

***

### Report Resolve

Staff can resolve reports using:

```
/reports resolve
```

Example concept:

```
/reports resolve <id>
```

{% hint style="info" %}
The exact resolve syntax depends on your `report.yml` configuration.
{% endhint %}

Resolving reports is useful for:

* Closing handled reports
* Keeping the report list clean
* Avoiding duplicate moderation work
* Tracking active moderation issues

***

### Report Notifications Toggle

Depending on configuration, staff may be able to toggle report notifications.

Default command:

```
/reports notify
```

This can be useful for staff members who are temporarily unavailable or focusing on another task.

***

### Cooldowns

The Report module can use cooldowns to prevent spam.

Players with this permission can bypass report cooldowns:

```
nexusproxy.report.cooldown.bypass
```

Recommended for:

* Admins
* Senior staff
* Trusted moderation roles

Not recommended for normal players.

***

### Discord Webhooks

The Report module can optionally send submitted reports to Discord using webhooks.

This is useful for:

* Staff report channels
* Moderation logs
* Offline staff notifications
* Keeping a record of submitted reports

Example concept:

```yaml
discord:
  enabled: true
  webhook_url: "https://discord.com/api/webhooks/..."
```

{% hint style="warning" %}
Keep Discord webhook URLs private.

Anyone with the webhook URL may be able to send messages to that Discord channel.
{% endhint %}

***

### Staff Hidden and Bypass Behavior

The Report module can work with staff hidden or bypass behavior depending on configuration.

Relevant permissions:

```
nexusproxy.staff.hidden
nexusproxy.staff.bypass
```

These permissions may be useful for:

* Hidden staff members
* Staff privacy
* Moderation bypass behavior
* Preventing staff from being exposed in certain report flows

{% hint style="warning" %}
Only give staff hidden or bypass permissions to trusted staff groups.
{% endhint %}

***

### Common Use Cases

#### Submit a report

```
/report Steve Using kill aura
```

***

#### View pending reports

```
/reports list
```

***

#### Resolve a report

```
/reports resolve <id>
```

***

#### Toggle report notifications

```
/reports notify
```

***

#### Give players report access

```
/lp group default permission set nexusproxy.report.command true
```

***

#### Give staff report notifications

```
/lp group staff permission set nexusproxy.report.receive true
```

***

### Setup Tips

* Give `/report` access to normal players.
* Give report receive permission to moderation staff.
* Give report admin permission only to staff who can manage reports.
* Use cooldowns to reduce report spam.
* Use Discord webhooks if you want reports in a staff Discord channel.
* Keep webhook URLs private.
* Remember that pending reports are stored in memory.
* Check `report.yml` if you want to change command names, aliases, messages, cooldowns, or webhook settings.

***

### Common Issues

#### Players cannot use `/report`

Check that:

* The Report module is enabled.
* The player has `nexusproxy.report.command`.
* The command was not renamed in `report.yml`.
* Another plugin is not overriding `/report`.

***

#### Staff do not receive reports

Check that:

* Staff have `nexusproxy.report.receive`.
* Report notifications are enabled in `report.yml`.
* The staff member is online.
* The report was submitted correctly.
* The module was reloaded after configuration changes.

***

#### `/reports list` does not work

Check that:

* The player has `nexusproxy.report.admin`.
* The Report module is enabled.
* There are pending reports.
* The command was not renamed in `report.yml`.

***

#### Reports disappear after restart

Pending reports are stored in memory.

If the proxy restarts, pending reports may be cleared depending on your setup.

***

#### Discord webhook does not send reports

Check that:

* Discord webhook support is enabled.
* The webhook URL is correct.
* The webhook still exists in Discord.
* The proxy can reach Discord.
* Report webhook messages are enabled in `report.yml`.

***

#### Report cooldown blocks staff

Check that:

* Staff have `nexusproxy.report.cooldown.bypass` if they should bypass cooldowns.
* Cooldown settings are configured correctly.
* The permission is assigned correctly in LuckPerms.

***

#### Another plugin is using the same commands

If another plugin registers the same command or alias, change the command names or aliases in:

```
plugins/NexusProxy/modules/report/report.yml
```

***

### Summary

The Report module provides a simple and useful player reporting system for NexusProxy.

It is recommended for networks that want player reports, staff notifications, pending report management, resolve workflows, cooldown control, and optional Discord webhook logging.


---

# 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://nexusproxy.nemesismc.net/modules/report.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.
