# ❔ FAQ

***

### What is NexusProxy?

NexusProxy is an all-in-one modular core plugin for Velocity proxy networks.

It provides multiple proxy-side systems in one plugin, including commands, messaging, lobby routing, staff tools, maintenance, MOTD, announcements, donations, friends, HelpOp, reports, queues, ping, placeholders, and tab completion filtering.

***

### Where should I install NexusProxy?

Install NexusProxy on your Velocity proxy.

Correct location:

```
velocity/
└── plugins/
    └── NexusProxy-x.x.x.jar
```

Do not install the main NexusProxy jar on backend servers.

Incorrect location:

```
paper-server/
└── plugins/
    └── NexusProxy-x.x.x.jar
```

{% hint style="warning" %}
NexusProxy is a Velocity plugin.

It should not be installed on Paper, Spigot, or Purpur backend servers.
{% endhint %}

***

### What Java version does NexusProxy require?

NexusProxy requires Java 21.

You can check your Java version with:

```
java -version
```

***

### Do I need Redis?

Redis is optional for simple single-proxy setups.

Redis is recommended if you need:

* Multiple Velocity proxies
* Global online counts
* Cross-proxy player presence
* Friends online status
* Staff synchronization
* Synced announcements
* Synced donation broadcasts
* PlaceholderAPI expansion online data

{% hint style="info" %}
For multi-proxy networks, Redis is strongly recommended.
{% endhint %}

***

### Do I need MySQL or MongoDB?

A database is optional, but recommended for persistent data.

Use MySQL or MongoDB if you need:

* Friends data
* Known player profiles
* Ignored players
* Private message data
* HelpOp history
* History-backed systems

If you do not need persistent data, you can use:

```yaml
storage:
  database:
    type: "none"
```

***

### Can I use NexusProxy with only one proxy?

Yes.

For a single Velocity proxy, you can use many NexusProxy modules without Redis.

Redis is mainly useful when you need shared data between multiple proxies or backend PlaceholderAPI online data.

***

### What is `cluster.proxy_id`?

`cluster.proxy_id` is the internal ID used by NexusProxy for Redis, storage, presence tracking, and synchronization.

Example:

```yaml
cluster:
  proxy_id: "Proxy-1"
  proxy_name: "Proxy 1"
```

Every proxy must have a unique `proxy_id`.

{% hint style="danger" %}
Do not use the same `cluster.proxy_id` on multiple proxies.
{% endhint %}

***

### What is `cluster.proxy_name`?

`cluster.proxy_name` is the display name used in messages and commands.

Example:

```yaml
cluster:
  proxy_name: "Main Proxy"
```

Unlike `proxy_id`, this value can be more readable.

***

### What is the difference between Lobby and MultiLobby?

Use **Lobby** for simple `/lobby`, `/hub`, and `/hubs` routing.

Use **MultiLobby** for more advanced routing across multiple lobby servers.

| Module     | Best For                                                                         |
| ---------- | -------------------------------------------------------------------------------- |
| Lobby      | Simple lobby routing.                                                            |
| MultiLobby | Multiple lobbies, balancing, cooldowns, bypass rules, and safer lobby selection. |

***

### What is the difference between proxy-side placeholders and PlaceholderAPI?

NexusProxy has two placeholder systems.

| System                   | Where It Works                      | Used For                                                               |
| ------------------------ | ----------------------------------- | ---------------------------------------------------------------------- |
| Proxy-side placeholders  | Velocity proxy                      | NexusProxy messages, announcements, formats, and proxy systems.        |
| PlaceholderAPI expansion | Backend Paper/Spigot/Purpur servers | Scoreboards, TAB plugins, menus, holograms, and other backend plugins. |

{% hint style="warning" %}
The PlaceholderAPI expansion is separate from the main Velocity plugin.
{% endhint %}

***

### Where do I install the PlaceholderAPI expansion?

Install the NexusProxy PlaceholderAPI expansion on the backend server.

Correct location:

```
backend-server/
└── plugins/
    └── PlaceholderAPI/
        └── expansions/
            └── expansion-nexusproxy.jar
```

Do not install it on Velocity.

Incorrect location:

```
velocity/
└── plugins/
    └── expansion-nexusproxy.jar
```

***

### Why do PlaceholderAPI placeholders return 0?

Common causes:

* The expansion is installed in the wrong place.
* Redis settings do not match NexusProxy.
* Database settings do not match NexusProxy.
* Redis is disabled.
* Friends module is disabled.
* Friend data does not exist.
* The backend server was not restarted.
* `/papi reload` was not executed.

Check the expansion config:

```
plugins/PlaceholderAPI/expansions/NexusProxy/config.yml
```

***

### Why does global online return 0?

Check that:

* Redis is enabled in NexusProxy.
* Redis is enabled in the PlaceholderAPI expansion, if using backend placeholders.
* Every proxy uses the same Redis settings.
* Every proxy uses the same `channel_prefix`.
* Every proxy has a unique `cluster.proxy_id`.
* `/nexusproxy storage` shows Redis as connected.

***

### Why do friends placeholders return 0?

Check that:

* Friends module is enabled.
* Database storage is enabled.
* Friend data exists in the database.
* Redis is enabled if checking online friends.
* PlaceholderAPI expansion uses the same database settings.
* PlaceholderAPI expansion uses the same Redis settings.

{% hint style="info" %}
Redis handles online friend status.

The database stores persistent friend relationships.
{% endhint %}

***

### Do I need PacketEvents?

Only for packet-based features.

PacketEvents is required for:

* HealthIndicator
* Toast announcements
* Toast donation effects
* Packet-based integrations

If you do not use those features, PacketEvents may not be required.

***

### Where should I install PacketEvents?

Install PacketEvents on the Velocity proxy.

Example:

```
velocity/
└── plugins/
    ├── NexusProxy-x.x.x.jar
    └── packetevents-velocity-x.x.x.jar
```

Use the Velocity version of PacketEvents.

***

### Why does HealthIndicator not work?

HealthIndicator requires PacketEvents.

Check that:

* PacketEvents is installed on Velocity.
* PacketEvents loaded correctly.
* HealthIndicator module is enabled.
* The proxy was restarted after installing PacketEvents.
* The player does not have `nexusproxy.healthindicator.bypass`.

***

### Why do toast announcements or donation toast effects not work?

Toast features require PacketEvents.

Check that:

* PacketEvents is installed.
* PacketEvents loaded correctly.
* The related module is enabled.
* Toast settings are enabled.
* The proxy was restarted after installing PacketEvents.

Toast features may be used by:

* Announcer
* Donations

***

### Does HelpOp require Discord?

No.

HelpOp can work without Discord.

Discord is optional and can be used in two ways:

| Mode         | Purpose                                                               |
| ------------ | --------------------------------------------------------------------- |
| Webhook mode | Simple HelpOp logs in Discord.                                        |
| Bot mode     | Advanced tickets with buttons, threads, replies, and ticket handling. |

***

### Do I need a separate JDA addon jar for HelpOp bot mode?

No.

NexusProxy handles JDA runtime libraries through:

```
plugins/NexusProxy/libraries/
```

A separate HelpOp JDA addon jar is not required.

***

### Why does HelpOp Discord bot mode not connect?

Check that:

* Bot mode is enabled.
* The bot token is correct.
* The channel ID is correct.
* The bot is invited to the Discord server.
* The bot has the required permissions.
* The proxy can connect to Discord.
* JDA libraries were downloaded into `plugins/NexusProxy/libraries/`.

{% hint style="danger" %}
Never share your Discord bot token publicly.
{% endhint %}

***

### Can command names and aliases be changed?

Yes.

Most command names and aliases are configurable in each module YAML file.

Example:

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

{% hint style="info" %}
The commands shown in this documentation are the default commands.
{% endhint %}

***

### Why does a command not work?

Check that:

* The module is enabled.
* The player has the correct permission.
* The command was not renamed.
* Another plugin is not using the same command.
* NexusProxy was reloaded or restarted.

***

### How do I reload NexusProxy?

Use:

```
/nexusproxy reload
```

Aliases:

```
/nproxy reload
/np reload
```

To check modules:

```
/nexusproxy modules
```

To check Redis and database status:

```
/nexusproxy storage
```

***

### How do I enable a module?

Open the module configuration file:

```
plugins/NexusProxy/modules/<module>/<module>.yml
```

Set:

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

Then restart or reload NexusProxy.

***

### How do I disable a module?

Open the module configuration file:

```
plugins/NexusProxy/modules/<module>/<module>.yml
```

Set:

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

Then restart or reload NexusProxy.

***

### Which module is enabled by default?

The Main module is enabled by default.

Most other modules can be enabled or disabled depending on your setup.

***

### What is stored in `plugins/NexusProxy/libraries/`?

NexusProxy downloads optional runtime libraries into:

```
plugins/NexusProxy/libraries/
```

These may include libraries for:

* MySQL
* MongoDB
* Redis
* Discord bot mode / JDA

You normally do not need to install these manually.

***

### What should I send when asking for support?

Send useful information such as:

* NexusProxy version
* Velocity version
* Java version
* Console error
* Related module name
* Related module config
* Output of `/nexusproxy storage`
* Whether Redis is enabled
* Whether database storage is enabled
* Steps to reproduce the issue

{% hint style="warning" %}
Remove private information before sending configs.
{% endhint %}

***

### What information should I never share publicly?

Do not share:

* License key
* MySQL password
* MongoDB password
* Redis password
* Discord webhook URL
* Discord bot token
* Private server IPs, if you want to keep them private

***

### Quick Fix Checklist

Before asking for support, check:

* Java 21 is installed.
* NexusProxy is installed on Velocity.
* The required module is enabled.
* The command permission is assigned.
* Redis is connected if the feature needs Redis.
* Database is connected if the feature needs storage.
* PacketEvents is installed if the feature needs packet support.
* PlaceholderAPI expansion is installed on the backend server, not Velocity.
* No other plugin is using the same command.

***

### Summary

Most NexusProxy issues are caused by missing dependencies, wrong installation location, disabled modules, incorrect permissions, Redis/database misconfiguration, or command conflicts.

When in doubt, check:

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


---

# 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/help/faq.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.
