# 🔐 Permissions

{% hint style="warning" %}
Most permissions, command names, and aliases can be changed in each module YAML file.

The permissions shown here are the default base permissions shipped with NexusProxy.
{% endhint %}

***

### Core Permissions

| Permission         | Description                                               |
| ------------------ | --------------------------------------------------------- |
| `nexusproxy.admin` | Allows access to core NexusProxy administration commands. |

Core commands include:

```
/nexusproxy reload
/nexusproxy modules
/nexusproxy storage
```

Aliases:

```
/nproxy
/np
```

***

### Main Module

| Permission                           | Description                                        |
| ------------------------------------ | -------------------------------------------------- |
| `nexusproxy.command.alert`           | Allows usage of `/alert`.                          |
| `nexusproxy.command.alertraw`        | Allows usage of `/alertraw`.                       |
| `nexusproxy.command.find`            | Allows usage of `/find`.                           |
| `nexusproxy.command.glist`           | Allows usage of `/glist`.                          |
| `nexusproxy.command.plist`           | Allows usage of `/plist`.                          |
| `nexusproxy.command.send`            | Allows usage of `/send`.                           |
| `nexusproxy.command.server`          | Allows usage of `/server`.                         |
| `nexusproxy.command.shutdown`        | Allows usage of `/shutdown`.                       |
| `velocity.command.plugins`           | Allows access to Velocity plugin command features. |
| `velocity.command.info`              | Allows access to Velocity info command features.   |
| `velocity.command.reload`            | Allows access to Velocity reload command features. |
| `nexusproxy.command.velocity.sudo`   | Allows usage of Velocity sudo command features.    |
| `nexusproxy.command.velocity.uptime` | Allows usage of Velocity uptime command features.  |

{% hint style="danger" %}
Be careful with `/shutdown`, `/velocity reload`, and `/velocity sudo`.

These permissions should only be given to trusted administrators.
{% endhint %}

***

### Messaging Module

| Permission                             | Description                                               |
| -------------------------------------- | --------------------------------------------------------- |
| `nexusproxy.command.msg`               | Allows usage of `/msg`.                                   |
| `nexusproxy.command.reply`             | Allows usage of `/reply`.                                 |
| `nexusproxy.command.ignore`            | Allows usage of `/ignore`.                                |
| `nexusproxy.command.socialspy`         | Allows usage of `/socialspy`.                             |
| `nexusproxy.command.msgtoggle`         | Allows usage of `/msgtoggle`.                             |
| `nexusproxy.messaging.cooldown.bypass` | Allows bypassing messaging cooldowns, if enabled.         |
| `nexusproxy.staff.hidden`              | Allows staff hidden behavior, depending on configuration. |
| `nexusproxy.staff.bypass`              | Allows staff bypass behavior, depending on configuration. |

{% hint style="warning" %}
Only give social spy permissions to trusted staff members.
{% endhint %}

***

### Lobby Module

| Permission                 | Description                                                      |
| -------------------------- | ---------------------------------------------------------------- |
| `nexusproxy.command.lobby` | Allows usage of `/lobby`, `/hub`, and `/hubs`.                   |
| `nexusproxy.lobby.bypass`  | Allows bypassing lobby restrictions, depending on configuration. |

***

### MultiLobby Module

| Permission                              | Description                                                              |
| --------------------------------------- | ------------------------------------------------------------------------ |
| `nexusproxy.command.multilobby`         | Allows usage of `/multilobby` and `/mlobby`.                             |
| `nexusproxy.multilobby.bypass`          | Allows bypassing MultiLobby restrictions, depending on configuration.    |
| `nexusproxy.multilobby.security.bypass` | Allows bypassing MultiLobby security checks, depending on configuration. |

{% hint style="warning" %}
Only give security bypass permissions to trusted administrators.
{% endhint %}

***

### Staff Module

| Permission                 | Description                                                                 |
| -------------------------- | --------------------------------------------------------------------------- |
| `nexusproxy.staffchat.*`   | Grants access to StaffChat-related permissions, depending on configuration. |
| `nexusproxy.adminchat.*`   | Grants access to AdminChat-related permissions, depending on configuration. |
| `nexusproxy.donorchat.*`   | Grants access to DonorChat-related permissions, depending on configuration. |
| `nexusproxy.stafflist.use` | Allows usage of `/stafflist`.                                               |
| `nexusproxy.staffafk.use`  | Allows usage of `/staffafk`.                                                |
| `nexusproxy.staff.silent`  | Allows silent staff behavior, depending on configuration.                   |

{% hint style="info" %}
Wildcard permissions are convenient, but you should review what they include before using them in production.
{% endhint %}

***

### Maintenance Module

| Permission                       | Description                                                                |
| -------------------------------- | -------------------------------------------------------------------------- |
| `nexusproxy.command.maintenance` | Allows usage of maintenance commands.                                      |
| `nexusproxy.maintenance.bypass`  | Allows bypassing global maintenance mode.                                  |
| Per-scope bypass permission      | Allows bypassing a specific maintenance scope, depending on configuration. |

Example scoped permission:

```
nexusproxy.maintenance.bypass.survival
```

{% hint style="warning" %}
The exact per-scope bypass permission depends on your `maintenance.yml` configuration.
{% endhint %}

***

### Placeholders Module

| Permission                        | Description                                   |
| --------------------------------- | --------------------------------------------- |
| `nexusproxy.command.placeholders` | Allows usage of `/nplaceholder` and `/npapi`. |

***

### Stream Module

| Permission                          | Description                                                            |
| ----------------------------------- | ---------------------------------------------------------------------- |
| `nexusproxy.command.stream`         | Allows usage of `/stream`.                                             |
| `nexusproxy.stream.cooldown.bypass` | Allows bypassing stream announcement cooldowns.                        |
| Platform permissions                | Allows usage of specific stream platforms, depending on configuration. |

Example platform permissions:

```
nexusproxy.stream.platform.twitch
nexusproxy.stream.platform.youtube
```

{% hint style="info" %}
Platform permissions depend on your `stream.yml` configuration.
{% endhint %}

***

### Announcer Module

| Permission                             | Description                                                        |
| -------------------------------------- | ------------------------------------------------------------------ |
| `nexusproxy.command.announcer`         | Allows access to the main announcer command.                       |
| `nexusproxy.command.announcer.toggle`  | Allows usage of `/announcer toggle`.                               |
| `nexusproxy.command.announcer.preview` | Allows usage of `/announcer preview`.                              |
| `nexusproxy.command.announcer.send`    | Allows usage of `/announcer send`.                                 |
| `nexusproxy.announcer.receive`         | Allows receiving normal announcements, depending on configuration. |
| `nexusproxy.announcer.force_receive`   | Forces receiving announcements, depending on configuration.        |

{% hint style="warning" %}
Only give manual announcement send permissions to trusted staff or administrators.
{% endhint %}

***

### Donations Module

| Permission                               | Description                                  |
| ---------------------------------------- | -------------------------------------------- |
| `nexusproxy.command.donations`           | Allows access to the main donations command. |
| `nexusproxy.command.donations.status`    | Allows usage of `/donations status`.         |
| `nexusproxy.command.donations.broadcast` | Allows usage of `/donations broadcast`.      |
| `nexusproxy.command.donations.test`      | Allows usage of `/donations test`.           |

{% hint style="warning" %}
Donation broadcast permissions should only be given to trusted administrators.
{% endhint %}

***

### Friends Module

| Permission                           | Description                                                               |
| ------------------------------------ | ------------------------------------------------------------------------- |
| `nexusproxy.command.friends.*`       | Grants access to Friends command permissions, depending on configuration. |
| `nexusproxy.friends.limit.bypass`    | Allows bypassing the configured friend limit.                             |
| `nexusproxy.friends.limit.vip`       | Example permission for VIP friend limits.                                 |
| `nexusproxy.friends.limit.mvp`       | Example permission for MVP friend limits.                                 |
| `nexusproxy.friends.limit.unlimited` | Example permission for unlimited friends.                                 |

{% hint style="info" %}
Friend limit permissions are configurable.

Check `friends.yml` before assigning rank-based friend limits.
{% endhint %}

***

### HelpOp Module

| Permission                          | Description                                                           |
| ----------------------------------- | --------------------------------------------------------------------- |
| `nexusproxy.helpop.command`         | Allows access to HelpOp command features, depending on configuration. |
| `nexusproxy.helpop.report`          | Allows players to submit HelpOp requests.                             |
| `nexusproxy.helpop.notify`          | Allows staff to receive HelpOp notifications.                         |
| `nexusproxy.helpop.history`         | Allows staff to view HelpOp history.                                  |
| `nexusproxy.helpop.socialspy`       | Allows staff to monitor HelpOp activity, depending on configuration.  |
| `nexusproxy.helpop.cooldown.bypass` | Allows bypassing HelpOp cooldowns.                                    |
| `nexusproxy.helpop.receive`         | Allows receiving HelpOp messages or tickets.                          |
| `nexusproxy.helpop.move`            | Allows moving HelpOp tickets, depending on configuration.             |

{% hint style="warning" %}
Give HelpOp history, move, and social spy permissions only to trusted staff.
{% endhint %}

***

### Report Module

| Permission                          | Description                                                              |
| ----------------------------------- | ------------------------------------------------------------------------ |
| `nexusproxy.report.command`         | Allows usage of `/report`.                                               |
| `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. |

***

### Custom Commands Module

| Permission                                  | Description                                          |
| ------------------------------------------- | ---------------------------------------------------- |
| `nexusproxy.customcommands.cooldown.bypass` | Allows bypassing custom command cooldowns.           |
| `commands.<command>.permission`             | Permission configured for a specific custom command. |

Example custom command permissions:

```
nexusproxy.customcommands.discord
nexusproxy.customcommands.store
nexusproxy.customcommands.web
```

{% hint style="warning" %}
The exact permission for each custom command depends on your `customcommands.yml` configuration.
{% endhint %}

***

### TabCompleteFilter Module

| Permission                            | Description                                                            |
| ------------------------------------- | ---------------------------------------------------------------------- |
| `nexusproxy.tabcompletefilter.bypass` | Allows bypassing tab completion filtering, depending on configuration. |
| `groups.<group>.permission`           | Permission configured for a specific tab completion filter group.      |

Example group permissions:

```
nexusproxy.tabcompletefilter.group.default
nexusproxy.tabcompletefilter.group.staff
nexusproxy.tabcompletefilter.group.admin
```

{% hint style="info" %}
Group permissions depend on your `tabcompletefilter.yml` configuration.
{% endhint %}

***

### Queue Module

| Permission                      | Description                                                            |
| ------------------------------- | ---------------------------------------------------------------------- |
| `nexusproxy.command.queue`      | Allows usage of `/queue`.                                              |
| `nexusproxy.command.leavequeue` | Allows usage of `/leavequeue`.                                         |
| `nexusproxy.command.queuelist`  | Allows usage of `/queuelist`.                                          |
| Cooldown bypass permission      | Allows bypassing queue cooldowns, depending on configuration.          |
| Target permissions              | Controls access to specific queue targets, depending on configuration. |
| Priority permissions            | Controls queue priority, depending on configuration.                   |

Example priority permissions:

```
nexusproxy.queue.priority.vip
nexusproxy.queue.priority.mvp
```

Example target permission:

```
nexusproxy.queue.target.event
```

{% hint style="warning" %}
Queue target, priority, and cooldown permissions depend on your `queue.yml` configuration.
{% endhint %}

***

### Ping Module

| Permission                       | Description                                                  |
| -------------------------------- | ------------------------------------------------------------ |
| `nexusproxy.command.ping`        | Allows usage of `/ping`.                                     |
| `nexusproxy.command.ping.others` | Allows checking another player's ping with `/ping <player>`. |

***

### HealthIndicator Module

| Permission                          | Description                                                            |
| ----------------------------------- | ---------------------------------------------------------------------- |
| `nexusproxy.healthindicator.bypass` | Allows bypassing HealthIndicator behavior, depending on configuration. |

{% hint style="warning" %}
HealthIndicator requires PacketEvents.

The bypass permission should only be given to groups that should ignore HealthIndicator rules.
{% endhint %}

***

## Recommended Permission Setup

The following examples show a basic LuckPerms structure.

Adjust the groups and permissions to match your network.

***

### Default Players

Recommended for normal players:

```
/lp group default permission set nexusproxy.command.msg true
/lp group default permission set nexusproxy.command.reply true
/lp group default permission set nexusproxy.command.ignore true
/lp group default permission set nexusproxy.command.msgtoggle true
/lp group default permission set nexusproxy.command.lobby true
/lp group default permission set nexusproxy.command.ping true
/lp group default permission set nexusproxy.report.command true
/lp group default permission set nexusproxy.helpop.report true
/lp group default permission set nexusproxy.command.friends.* true
/lp group default permission set nexusproxy.announcer.receive true
```

Optional:

```
/lp group default permission set nexusproxy.command.queue true
/lp group default permission set nexusproxy.command.leavequeue true
/lp group default permission set nexusproxy.command.stream true
```

***

### Staff

Recommended for staff members:

```
/lp group staff permission set nexusproxy.command.socialspy true
/lp group staff permission set nexusproxy.staffchat.* true
/lp group staff permission set nexusproxy.stafflist.use true
/lp group staff permission set nexusproxy.staffafk.use true
/lp group staff permission set nexusproxy.report.receive true
/lp group staff permission set nexusproxy.report.admin true
/lp group staff permission set nexusproxy.helpop.notify true
/lp group staff permission set nexusproxy.helpop.receive true
/lp group staff permission set nexusproxy.helpop.command true
/lp group staff permission set nexusproxy.command.ping.others true
/lp group staff permission set nexusproxy.command.queuelist true
```

Optional:

```
/lp group staff permission set nexusproxy.lobby.bypass true
/lp group staff permission set nexusproxy.multilobby.bypass true
/lp group staff permission set nexusproxy.maintenance.bypass true
```

***

### Senior Staff

Recommended for senior staff or moderators with more responsibility:

```
/lp group seniorstaff permission set nexusproxy.helpop.history true
/lp group seniorstaff permission set nexusproxy.helpop.move true
/lp group seniorstaff permission set nexusproxy.helpop.socialspy true
/lp group seniorstaff permission set nexusproxy.report.cooldown.bypass true
/lp group seniorstaff permission set nexusproxy.messaging.cooldown.bypass true
```

***

### Admins

Recommended for administrators:

```
/lp group admin permission set nexusproxy.admin true
/lp group admin permission set nexusproxy.command.alert true
/lp group admin permission set nexusproxy.command.alertraw true
/lp group admin permission set nexusproxy.command.find true
/lp group admin permission set nexusproxy.command.glist true
/lp group admin permission set nexusproxy.command.plist true
/lp group admin permission set nexusproxy.command.send true
/lp group admin permission set nexusproxy.command.server true
/lp group admin permission set nexusproxy.command.maintenance true
/lp group admin permission set nexusproxy.command.announcer true
/lp group admin permission set nexusproxy.command.announcer.preview true
/lp group admin permission set nexusproxy.command.announcer.send true
/lp group admin permission set nexusproxy.command.donations true
/lp group admin permission set nexusproxy.command.donations.status true
/lp group admin permission set nexusproxy.command.donations.broadcast true
/lp group admin permission set nexusproxy.command.donations.test true
```

Sensitive permissions:

```
/lp group admin permission set nexusproxy.command.shutdown true
/lp group admin permission set velocity.command.reload true
/lp group admin permission set nexusproxy.command.velocity.sudo true
/lp group admin permission set nexusproxy.multilobby.security.bypass true
```

{% hint style="danger" %}
Be very careful with shutdown, reload, sudo, and security bypass permissions.

Give them only to people you fully trust.
{% endhint %}

***

### Owners / Developers

For owners or developers, you may want full access while testing.

Example:

```
/lp group owner permission set nexusproxy.admin true
/lp group owner permission set nexusproxy.tabcompletefilter.bypass true
/lp group owner permission set nexusproxy.healthindicator.bypass true
/lp group owner permission set nexusproxy.maintenance.bypass true
```

Depending on your permission strategy, you may also give full module access.

{% hint style="warning" %}
Avoid giving broad wildcard access to public staff groups unless you know exactly what each wildcard includes.
{% endhint %}

***

## Permission Tips

* Give normal players only the commands they need.
* Keep administrative permissions restricted.
* Use separate groups for staff, senior staff, admins, and owners.
* Be careful with wildcard permissions.
* Review each module YAML file for configurable permissions.
* Use LuckPerms verbose mode when debugging permission issues.
* Test permissions with a normal player account.
* Do not rely on command hiding as a replacement for permissions.
* Keep bypass permissions limited to trusted groups.

***

## Debugging Permissions

If a player cannot use a command, check:

* The module is enabled.
* The command was not renamed.
* The player has the correct permission.
* The permission is assigned in the correct context.
* Another plugin is not overriding the command.
* The player does not have a negative permission.
* LuckPerms is loaded correctly on the proxy.

Useful LuckPerms command:

```
/lp verbose on
```

Use verbose mode to see which permissions are being checked when the player runs a command.

***

### Summary

NexusProxy permissions are organized by module.

Most permissions can be customized from each module configuration file, so always check the module YAML file before assuming a permission is fixed.


---

# 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/commands-and-permissions/permissions.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.
