> For the complete documentation index, see [llms.txt](https://docs.mipcraft.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mipcraft.eu/network-manager/welcome.md).

# Welcome

A powerful, high-performance Minecraft proxy and network management suite for **Velocity** and **BungeeCord** proxies. NetworkManager provides real-time administration, server status tracking, permission synchronization, and a modern, responsive web dashboard for network administrators.

***

## Key Capabilities

* **Real-time Web Dashboard** — Monitor and control your entire Minecraft network from any modern browser.
* **Database Synchronization (via DataManager)** — Centralized storage for player sessions, bans, playtime, and network configurations.
* **Friend Manager Integration** — Automatically detects and displays player friends and friendship dates from the database.
* **Party Manager Integration** — Allows network admins to monitor active parties and player groups.
* **Server State Management** — Remotely ping, restart, add, or remove backend servers on the fly.
* **Advanced Ban & Kick Management** — Time-limited or permanent IP/UUID bans, with live revocation and real-time dashboard events.
* **Maintenance & Join Restrictions** — Toggle global maintenance mode with custom MOTDs, join restrictions, and an admin bypass list.
* **Hex Color MOTD Editor** — Dynamic MOTD editor supporting modern `#RRGGBB` hex color codes with a live preview.
* **Player Analytics & Metrics** — Rolling 60-minute player count visualizer powered by dynamic SVG line charts.
* **Live SSE Updates** — Uses Server-Sent Events (SSE) to push real-time player and server state changes directly to connected dashboards.
* **Dual-JAR Architecture** — Run the same jar on your proxy and your backend Spigot/Paper servers to enable cross-network GUI menus, PlaceholderAPI support, and clean server reboots.

***

## Core Dependencies

### DataManager (Required)

NetworkManager does not connect to your database directly. Instead, it relies on the **DataManager** plugin to establish and manage a high-performance database connection pool (supporting MySQL and MariaDB).

* **DataManager** must be installed on your proxy server.
* Without DataManager, NetworkManager will fail to load or save player stats, bans, and playtime data.

***

## Network Architecture

```
┌────────────────────────────────────────────────────────────────────────┐
│                              Web Dashboard                       │
│                  (Vue 3 / JavaScript / Tailwind CSS)             │
└───────────────────────────────────┬────────────────────────────────────┘
                                 │ HTTP / SSE
                                 ▼
┌────────────────────────────────────────────────────────────────────────┐
│                   Proxy Server (Velocity / BungeeCord)           │
│                      [ Running NetworkManager JAR ]              │
│    - Serves Embedded Web Panel (Port 8080 or Custom)             │
│    - Exposes REST API (Secured via Password or API Key)          │
│    - Handles Database Queries via reflection on DataManager      │
└───────────┬──────────────────────────────────────────────┬─────────────┘
           │                                          │
           │ Plugin Channels (nm:channel)             │ MySQL / MariaDB
           ▼                                          ▼
┌──────────────────────────────────────┐     ┌───────────────────────────┐
│     Backend Spigot/Paper Server   │     │    Shared Database     │
│    [ Running NetworkManager JAR ] │     │   (DataManager Pool)   │
│  - Executes Server Reboots        │     │ - NetworkManagerPD     │
│  - Serves GUI Inventories         │     │ - NetworkManagerBans   │
│  - Handles PlaceholderAPI         │     │ - FriendsManagerTables │
└──────────────────────────────────────┘     └───────────────────────────┘
```

***

## Dual Installation Modes

NetworkManager operates in two different roles depending on where it is installed:

### 1. Proxy Mode (Velocity or BungeeCord)

This is the core of the plugin. It initializes the database tables (via DataManager), starts the HTTP/REST API server, monitors server pings, handles bans, and keeps track of online/offline player data.

### 2. Backend Mode (Spigot, Paper, or forks)

Running the same NetworkManager JAR on your backend Spigot/Paper servers unlocks features like:

* **Interactive GUIs**: Opens `/games` and `/hubs` navigation menus in-game.
* **Plugin Messaging (`nm:channel`)**: Allows the proxy to safely command backend restarts, sync maintenance states, and broadcast MOTDs.
* **PlaceholderAPI Support**: Registers placeholders on the backend to display network-wide counts and statuses in chat or scoreboards.

***

## Web Panel Hosting Options

NetworkManager offers two flexible ways to host the administration panel:

### 1. Same-Server (Embedded)

The web dashboard assets are compiled directly inside the plugin JAR. When your proxy starts, the plugin runs an embedded HTTP server (using JDK HttpServer) to serve the panel locally. No separate web servers are needed.

### 2. Standalone Panel Server (WebSocket Tunnel)

For separate web hosts or high-traffic networks, run the JAR directly in Standalone Panel Server mode (`--panel`). The Minecraft proxy connects to it via an outbound WebSocket tunnel, routing all REST and SSE updates seamlessly without CORS or SSL issues.

### 3. Static CDN (Legacy)

Host the pre-compiled static assets externally (e.g., Nginx, Cloudflare Pages, Netlify) and configure the panel to make API calls directly to your proxy API endpoint.

***

## Quick Start

1. Install **DataManager** on your proxy and configure the database connection.
2. Place the **NetworkManager** JAR in the `plugins/` directory of your proxy and backend servers.
3. Start the proxy to generate `config.yml`.
4. Configure `web.enabled: true`, set a strong `web.password`, and specify a port.
5. Restart your proxy, open `http://your-proxy-ip:8080`, and log in to manage your network!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.mipcraft.eu/network-manager/welcome.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
