# 🧩 Modules Overview

Each feature is handled by its own module, and each module has its own configuration file.

This allows you to enable only the systems your network needs.

***

### Module Location

Module configuration files are located inside:

```
plugins/NexusProxy/modules/
```

Example:

```
plugins/NexusProxy/modules/messaging/messaging.yml
plugins/NexusProxy/modules/staff/staff.yml
plugins/NexusProxy/modules/friends/friends.yml
```

Each module folder contains the settings, commands, aliases, permissions, messages, cooldowns, and feature options for that module.

***

### Enabling a Module

To enable a module, open its module configuration file and set:

```yaml
module:
  enabled: true
```

To disable a module, set:

```yaml
module:
  enabled: false
```

{% hint style="info" %}
The Main module is enabled by default.

Most other modules can be enabled or disabled depending on your network setup.
{% endhint %}

***

### Module Configuration

Most modules include configurable options such as:

* Command names
* Command aliases
* Permissions
* Messages
* Cooldowns
* Sounds
* Discord webhooks
* Redis synchronization
* Database usage
* Feature-specific settings

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

The commands shown in this documentation are the default commands.
{% endhint %}

***

### Available Modules

| Module            | Purpose                                                                                                                 |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Main              | Core proxy and admin commands such as alerts, send, server, glist/plist, find, shutdown, and Velocity utility commands. |
| Messaging         | Private messages, replies, ignore list, social spy, and message toggle.                                                 |
| Lobby             | Simple lobby routing through `/lobby`, `/hub`, and `/hubs`.                                                             |
| MultiLobby        | Advanced multi-lobby balancing and safer lobby routing.                                                                 |
| Staff             | Staff chat, admin chat, donor chat, staff list, AFK system, and staff join/quit notices.                                |
| MOTD              | MOTD rotation, hover list, icons, fake player count, and max player count controls.                                     |
| Maintenance       | Global and scoped maintenance mode with countdowns, whitelists, MOTD changes, and icons.                                |
| Placeholders      | Proxy-side placeholder parser and placeholder testing command.                                                          |
| Stream            | Allows players or staff to announce streams using supported platforms and URLs.                                         |
| Announcer         | Automatic and manual announcements through chat, title, actionbar, bossbar, sound, toast, and commands.                 |
| Donations         | Manual donation broadcasts for store integrations, Discord notifications, toast effects, GG wave, and commands.         |
| Friends           | Friend requests, accept/remove, where, transmit, online/offline counts, and friend limits.                              |
| HealthIndicator   | Spoof or hide player health, absorption, and XP metadata.                                                               |
| HelpOp            | Support ticket system with staff replies, history, move buttons, and Discord integration.                               |
| Report            | Player report system with staff notifications, list/resolve workflow, and Discord webhook support.                      |
| Custom Commands   | Config-defined utility commands such as `/discord`, `/store`, and `/web`.                                               |
| TabCompleteFilter | Filters or hides commands and tab completions by group and permission.                                                  |
| Queue             | Queues players for server groups or targets with priority and holding servers.                                          |
| Ping              | Player ping command and ping placeholders.                                                                              |

***

### Module Requirements

Some modules work without external dependencies.

Other modules require or benefit from optional integrations such as Redis, MySQL, MongoDB, PacketEvents, or Discord.

| Module            | Recommended / Required Dependencies                                                                                |
| ----------------- | ------------------------------------------------------------------------------------------------------------------ |
| Main              | None required.                                                                                                     |
| Messaging         | Database recommended for ignored players and private message history.                                              |
| Lobby             | None required.                                                                                                     |
| MultiLobby        | None required.                                                                                                     |
| Staff             | Redis recommended for cross-proxy synchronization. Discord webhooks optional.                                      |
| MOTD              | None required.                                                                                                     |
| Maintenance       | None required.                                                                                                     |
| Placeholders      | Redis recommended for global/proxy/server online placeholders.                                                     |
| Stream            | None required.                                                                                                     |
| Announcer         | Redis optional for synced manual announcements. PacketEvents required for toast announcements.                     |
| Donations         | Redis optional for synced donation broadcasts. Discord webhooks optional. PacketEvents required for toast effects. |
| Friends           | Redis + database recommended for cross-proxy networks.                                                             |
| HealthIndicator   | PacketEvents required.                                                                                             |
| HelpOp            | Database recommended for history. Discord webhook or bot mode optional.                                            |
| Report            | Discord webhook optional.                                                                                          |
| Custom Commands   | None required.                                                                                                     |
| TabCompleteFilter | None required.                                                                                                     |
| Queue             | None required.                                                                                                     |
| Ping              | None required.                                                                                                     |

***

### Recommended Setup by Network Type

#### Small Single-Proxy Network

For a simple network with one Velocity proxy, you can usually start with:

* Main
* Messaging
* Lobby
* Staff
* MOTD
* Maintenance
* Ping
* Custom Commands

Redis may not be required for this type of setup.

Database storage is only needed if you want persistent systems such as friends, ignored players, or history-backed features.

***

#### Multi-Proxy Network

For a network with multiple Velocity proxies, Redis is strongly recommended.

Recommended modules:

* Main
* Messaging
* Lobby or MultiLobby
* Staff
* MOTD
* Maintenance
* Friends
* Announcer
* Donations
* HelpOp
* Report
* Queue
* Ping

Recommended integrations:

* Redis
* MySQL or MongoDB
* Discord webhooks
* PacketEvents if using packet-based features

{% hint style="info" %}
For multi-proxy networks, every proxy should use the same Redis settings and a unique `cluster.proxy_id`.
{% endhint %}

***

#### Staff-Focused Network

If you want stronger moderation and staff tools, consider enabling:

* Staff
* Messaging
* HelpOp
* Report
* Maintenance
* TabCompleteFilter
* Ping

Optional integrations:

* Discord webhooks for staff logs and reports
* Database storage for HelpOp history
* Redis for cross-proxy synchronization

***

#### Community-Focused Network

If your network focuses on player interaction, consider enabling:

* Messaging
* Friends
* Stream
* Announcer
* Donations
* Custom Commands
* Ping
* PlaceholderAPI Expansion

Recommended integrations:

* MySQL or MongoDB for friends
* Redis for friends online status
* Discord webhooks for donations
* PlaceholderAPI expansion for lobby placeholders

***

### Common Module Tips

* Enable only the modules you actually use.
* Restart the proxy after enabling or disabling multiple modules.
* Check each module YAML file for configurable commands and permissions.
* Use Redis for cross-proxy synchronization.
* Use a database for persistent systems.
* Install PacketEvents only if you use packet-based features.
* Configure Discord webhooks only for modules that need Discord logging.
* Use `/nexusproxy modules` to check loaded modules.
* Use `/nexusproxy reload` after configuration changes.

***

### Useful Commands

Check loaded modules:

```
/nexusproxy modules
```

Reload NexusProxy:

```
/nexusproxy reload
```

Reload a specific module if supported:

```
/nexusproxy reload <module>
```

Check Redis and database status:

```
/nexusproxy storage
```

Aliases:

```
/nproxy
/np
```

***

### Next Steps

After understanding the module system, configure each module from its own page.

Each module page explains:

* What the module does
* When to enable it
* Required dependencies
* Default commands
* Main permissions
* Important configuration notes
* Common setup tips


---

# 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/modules-overview.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.
