ProxyFlow – AntiVPN

# The All-in-One Security System for your Velocity Proxy
**ProxyFlow** is the ultimate security solution for Minecraft server networks based on Velocity. Version 1.4.0 introduces massive performance improvements through **Asynchronous Processing**, **Caching**, and **Database Support**.
It proactively protects your network from bot attacks, VPN bypasses, and exploits while providing your team with essential tools like a global StaffChat and Discord integration.
**Support & Community**
Questions, bugs, or feature requests? Join our Discord:
https://discord.gg/DK8ZuTCwEC
—
## Features
### Security System
Protect your network before malicious connections even reach your backend servers.
* **Intelligent VPN & Proxy Blocker:**
* Blocks connections via anonymous networks (VPNs/Proxies).
* **NEW:** Uses an intelligent **Caching System** (stores results for X minutes) to save API limits and prevent join lag.
* Requires a free API key from proxycheck.io.
* **Persistent Punishments (SQLite):**
* **NEW:** Temporary bans (e.g., triggered by Anti-Bot) are now stored in a local SQLite database (`database.db`). Bans remain active even after a proxy restart!
* **Country Blocker (GeoIP):** Whitelist or Blacklist specific countries.
* **Anti-Bot & Anti-Exploit:**
* Detects inhumanly fast connection attempts.
* Blocks invalid usernames.
* Prevents packet exploits at the proxy level.
* **Multi-Account Protection:** Limits the number of players allowed to join from the same IP address.
### Discord Integration (NEW)
Connect your proxy to Discord via Webhooks:
* Notifications for **VPN/Bot blocks** (includes IP and username).
* Notifications for **Maintenance Mode** status changes.
* Fully asynchronous – your server will never lag, even if Discord is slow to respond.
### Global StaffChat (NEW)
Communicate with your team across all servers:
* Command: `/sc ` or `/staffchat `
* **Toggle Mode:** Use `/sc` without arguments to automatically send all your chat messages to the staff chat.
### Maintenance System
* **Custom MOTD:** Displays maintenance status directly in the server list (supports color codes).
* **Auto-Kick:** Disconnects players without permission during maintenance.
* **Bypass:** Staff members with permission can still join.
### Queue System
* Redirects players to a queue server if the target server (Lobby) is full.
* Priority support for VIPs/Staff.
—
## Installation
1. Download the `ProxyFlow-1.4.0+dependencies.jar`.
2. Place the file into the `plugins` folder of your Velocity Proxy.
3. **Important:** Ensure **Java 21** is installed.
4. Restart the proxy.
5. Add your API key to `config.yml` and configure the Discord Webhooks.
—
## Configuration (config.yml)
“`yaml
maintenance:
enabled: false
motd: ” &4&lServer is in maintenance!n &lPlease try again later”
kick-message: “&cThis server is currently in maintenance”
bypass-permission: “proxyflow.maintenance.bypass”
whitelist:
enabled: false
kick-message: “&cYou are not whitelisted on this server!”
players:
– “Notch”
– “Dinnerbone”
bypass-permission: “proxyflow.whitelist.bypass”
queue:
enabled: false
max-players: 100
queue-server: “queue”
target-server: “lobby”
queue-message: “&eYou are in queue… Position: &6{position}&e/&6{total}”
bypass-permission: “proxyflow.queue.bypass”
priority-permissions:
“proxyflow.queue.priority.high”: 100
“proxyflow.queue.priority.medium”: 50
“proxyflow.queue.priority.low”: 10
security:
vpn-check:
enabled: true
api-key: “YOUR_API_KEY_HERE”
# How long (in minutes) to cache an IP as “safe”? (Saves API requests)
cache-duration-minutes: 60
bypass-permission: “proxyflow.security.vpn.bypass”
whitelisted-players: []
block-server-ips: true
notify-admins: true
country-block:
enabled: false
mode: “blacklist”
countries:
– “US”
– “CN”
multi-account:
enabled: true
bypass-permission: “proxyflow.security.multiaccount.bypass”
action: “kick”
kick-message: “&cA player with your IP address is already on this server”
whitelisted-players: []
discord:
enabled: false
webhook-url: “https://discord.com/api/webhooks/…”
notify-vpn-block: true
notify-maintenance: true
staffchat:
enabled: true
format: “&8[&cSC&8] &e{player}&8: &f{message}”
“`
—
## Commands & Permissions
| Command | Permission | Description |
| — | — | — |
| `/proxyflow reload` | `proxyflow.command.reload` | Reloads the configuration. |
| `/maintenance` | `proxyflow.command.maintenance` | Toggles maintenance mode on/off. |
| `/staffchat` | `proxyflow.staffchat` | Sends a message or toggles staff chat. |
| `/whitelist ` | `proxyflow.command.whitelist` | Manages the whitelist. |
| `/security ` | `proxyflow.command.security` | Manages security settings live. |
| **Bypass Permissions** | | |
| (See Config) | `proxyflow.maintenance.bypass` | Join during maintenance. |
| (See Config) | `proxyflow.security.vpn.bypass` | Join using a VPN. |
| **Admin Notify** | `proxyflow.notify` | Receive ingame alerts when blocks occur. |
ProxyCore








> **ProxyCore** is a powerful, lightweight, all-in-one proxy utilities plugin built for **BungeeCord** and **Velocity** networks.
> 20 essential commands, automatic announcements, maintenance mode, private messaging, staff tools — all in a single plugin with **zero external dependencies**.
—
## 📋 Table of Contents
– [Features](#-features)
– [Requirements](#-requirements)
– [Installation](#-installation)
– [Commands](#-commands)
– [Permissions](#-permissions)
– [Configuration](#-configuration)
– [API](#-api)
– [Roadmap](#-roadmap)
– [Credits](#-credits)
– [License](#-license)
—
## ✨ Features
| 🔍 Network Info | 📢 Communication | 🚀 Player Management | ⚙️ Administration |
|:—:|:—:|:—:|:—:|
| Find players | Global announcements | Send players across servers | Maintenance mode |
| Server list | Staff chat | Move all players at once | Network-wide alerts |
| Network stats | Private messages | Kick from proxy | Config hot-reload |
| Ping checker | Reply system | Staff list | Uptime display |
| IP lookup | Broadcast with prefix | Force commands (sudo) | Per-server player list |
– ✅ **Dual platform** — One codebase, two JARs: BungeeCord & Velocity
– ✅ **Zero dependencies** — No external libraries required at runtime
– ✅ **Hot reload** — Apply config changes without restarting the proxy
– ✅ **Auto announcements** — Rotating messages with a configurable interval
– ✅ **Maintenance mode** — Kicks non-staff players and blocks new joins
– ✅ **Developer API** — Clean `proxycore-api` module for building addons
– ✅ **Multi-module Maven** — `proxycore-api`, `proxycore-bungeecord`, `proxycore-velocity`
—
## 📦 Requirements
| Requirement | Version |
|————-|———|
| Java | 17 or higher |
| BungeeCord | 1.20+ |
| Velocity | 3.x |
| Maven | 3.8+ *(for building from source)* |
—
## 🚀 Installation
### Pre-built JAR *(recommended)*
1. Download the correct JAR from Releases:
– `ProxyCore-BungeeCord-1.0.0.jar` → for BungeeCord
– `ProxyCore-Velocity-1.0.0.jar` → for Velocity
2. Drop it into your proxy’s `plugins/` folder.
3. Start or restart the proxy.
4. Edit the generated `plugins/ProxyCore/config.yml` and `messages.yml`.
5. Run `/proxyreload` to apply changes without restarting.
### Build from Source
“`bash
# Clone the repository
git clone https://github.com/YesithTK/ProxyCore.git
cd ProxyCore
# Build BungeeCord JAR
mvn clean package -pl proxycore-bungeecord -am
# Build Velocity JAR
mvn clean package -pl proxycore-velocity -am
“`
Output JARs:
– `proxycore-bungeecord/target/ProxyCore-BungeeCord-1.0.0.jar`
– `proxycore-velocity/target/ProxyCore-Velocity-1.0.0.jar`
—
## 💬 Commands
> **Note:** Velocity command names are prefixed with `v` — e.g. `/glist` → `/vglist`, `/send` → `/vsend`.
### 🔍 Network Information
| Command | Description | Permission |
|———|————-|————|
| `/find ` | Show which server a player is on | `proxycore.find` |
| `/glist` | List all servers with their player counts | `proxycore.glist` |
| `/network` | Display global network stats | `proxycore.network` |
| `/pping [player]` | Check your own or another player’s ping | `proxycore.ping` |
| `/pip ` | Retrieve a player’s IP address *(admin)* | `proxycore.ip` |
### 📢 Communication
| Command | Description | Permission |
|———|————-|————|
| `/announce ` | Broadcast a global announcement | `proxycore.announce` |
| `/staffchat ` | Send a message visible only to staff | `proxycore.staffchat` |
| `/pmsg ` | Send a private message across servers | `proxycore.msg` |
| `/reply ` | Reply to your last private message | `proxycore.msg` |
| `/pbroadcast ` | Network-wide broadcast with custom prefix | `proxycore.broadcast` |
### 🚀 Player Management
| Command | Description | Permission |
|———|————-|————|
| `/psend ` | Move a player to another server | `proxycore.send` |
| `/sendall ` | Move all online players to a server | `proxycore.sendall` |
| `/pkick [reason]` | Kick a player from the entire network | `proxycore.kick` |
| `/stafflist` | List all currently online staff members | `proxycore.stafflist` |
| `/psudo ` | Force a player to execute a command | `proxycore.sudo` |
### ⚙️ Administration
| Command | Description | Permission |
|———|————-|————|
| `/maintenance ` | Toggle maintenance mode on the network | `proxycore.maintenance` |
| `/alert ` | Send a highlighted alert box to all players | `proxycore.alert` |
| `/plist ` | List all players on a specific server | `proxycore.plist` |
| `/proxyreload` | Reload ProxyCore config without restarting | `proxycore.reload` |
| `/uptime` | Show how long the network has been running | `proxycore.uptime` |
—
## 🔐 Permissions
| Permission | Description | Default |
|————|————-|———|
| `proxycore.find` | Use `/find` | `true` |
| `proxycore.glist` | Use `/glist` | `true` |
| `proxycore.network` | Use `/network` | `true` |
| `proxycore.ping` | Check own ping | `true` |
| `proxycore.ping.others` | Check other players’ ping | `op` |
| `proxycore.ip` | View a player’s IP address | `op` |
| `proxycore.announce` | Send global announcements | `op` |
| `proxycore.broadcast` | Send network-wide broadcasts | `op` |
| `proxycore.staffchat` | Access and read staff chat | `op` |
| `proxycore.msg` | Send and receive private messages | `true` |
| `proxycore.send` | Move players between servers | `op` |
| `proxycore.sendall` | Move all players to a server | `op` |
| `proxycore.kick` | Kick players from the network | `op` |
| `proxycore.stafflist` | View the online staff list | `true` |
| `proxycore.staff` | Appear in `/stafflist` | `op` |
| `proxycore.sudo` | Force players to run commands | `op` |
| `proxycore.maintenance` | Toggle maintenance mode | `op` |
| `proxycore.maintenance.bypass` | Join the network during maintenance | `op` |
| `proxycore.alert` | Send network-wide alert messages | `op` |
| `proxycore.plist` | List players on a specific server | `true` |
| `proxycore.reload` | Reload the plugin configuration | `op` |
| `proxycore.uptime` | Check network uptime | `true` |
—
## ⚙️ Configuration
### `config.yml`
“`yaml
# ProxyCore Configuration — by YesithTK
maintenance:
enabled: false # Set true to enable maintenance on startup
announcements:
enabled: true
interval: 60 # Seconds between each auto-announcement
messages:
– “&6Welcome to the network! Enjoy your stay.”
– “&bJoin our Discord for news and updates!”
– “&aReport bugs with /report in-game.”
– “&dFollow us on social media for events and giveaways!”
“`
### `messages.yml`
“`yaml
# ProxyCore Messages — use & for color codes
prefix: “&8[&6ProxyCore&8] &r”
no-permission: “&cYou don’t have permission to do that.”
player-not-found: “&cPlayer &e%player% &cnot found or offline.”
default-kick-reason: “&cYou have been kicked from the network.”
maintenance-kick: |-
&c&lServer Maintenance
&7The network is currently under maintenance.
&7Please try again later.
find-result: “&a%player% &7is connected to &e%server%&7.”
announce-prefix: “&8[&6Announce&8] &r”
broadcast-prefix: “&8[&4Broadcast&8] &r”
“`
—
## 🧩 API
ProxyCore exposes a clean `proxycore-api` module so developers can build addons or integrate with the plugin without touching platform-specific code.
### Project Structure
“`
ProxyCore/
├── proxycore-api/ ← Shared interfaces & events
│ └── dev.yesithx.proxycore.api
│ ├── IProxyCorePlugin.java
│ ├── ProxyCoreAPI.java
│ ├── manager/
│ │ ├── IMessageManager.java
│ │ ├── IMaintenanceManager.java
│ │ └── IAnnounceManager.java
│ ├── command/
│ │ ├── ProxyCoreCommandSender.java
│ │ └── NetworkPlayer.java
│ └── event/
│ ├── ProxyCoreEvent.java
│ ├── MaintenanceToggleEvent.java
│ └── NetworkAnnounceEvent.java
├── proxycore-bungeecord/ ← BungeeCord implementation
└── proxycore-velocity/ ← Velocity implementation
“`
### Maven Dependency
“`xml
dev.yesithx
proxycore-api
1.0.0
provided
“`
### Usage Example
“`java
import dev.yesithx.proxycore.api.ProxyCoreAPI;
import dev.yesithx.proxycore.api.IProxyCorePlugin;
// Safe check before using
if (ProxyCoreAPI.isAvailable()) {
IProxyCorePlugin api = ProxyCoreAPI.get();
// Check maintenance mode
boolean maintenance = api.getMaintenanceManager().isEnabled();
// Toggle maintenance
api.getMaintenanceManager().setEnabled(true);
// Reload all managers
api.reload();
// Check announce scheduler
int interval = api.getAnnounceManager().getIntervalSeconds();
}
“`
### Available Interfaces
| Interface | Package | Description |
|———–|———|————-|
| `IProxyCorePlugin` | `api` | Base plugin interface — access all managers |
| `ProxyCoreAPI` | `api` | Static entry point for addons |
| `IMessageManager` | `api.manager` | Private messaging between players |
| `IMaintenanceManager` | `api.manager` | Maintenance mode control |
| `IAnnounceManager` | `api.manager` | Auto-announcement scheduler control |
| `ProxyCoreCommandSender` | `api.command` | Platform-agnostic command sender |
| `NetworkPlayer` | `api.command` | Platform-agnostic player abstraction |
| `ProxyCoreEvent` | `api.event` | Base class for all ProxyCore events |
| `MaintenanceToggleEvent` | `api.event` | Fired when maintenance is toggled |
| `NetworkAnnounceEvent` | `api.event` | Fired before each auto-announcement |
—
## 🗺️ Roadmap
| Version | Feature |
|———|———|
| `v1.1.0` | LuckPerms integration for permission-based staff detection |
| `v1.1.0` | `/report` command with staff notification system |
| `v1.2.0` | Configurable join/leave messages per server |
| `v1.2.0` | BossBar announcements as alternative to chat |
| `v1.3.0` | MySQL support for cross-restart data persistence |
| `v1.3.0` | REST API for external network monitoring |
| `v2.0.0` | Full PlaceholderAPI support |
| `v2.0.0` | Plugin Messaging Channel support for backend servers |
—
## 👤 Credits
| Role | Name |
|——|——|
| 🧑💻 Developer & Maintainer | **YesithTK** |
| 🏗️ Architecture & Design | **YesithTK** |
| 📖 Documentation | **YesithTK** |
*Built with ❤️ for the Minecraft network community.*
—
## 📄 License
“`
Copyright (c) 2026 YesithTK. All Rights Reserved.
This software and its source code are the exclusive property of YesithTK.
No part of this software may be reproduced, distributed, modified, or used
in any form without the prior written permission of the author.
Unauthorized copying, forking, or redistribution of this repository,
via any medium, is strictly prohibited.
“`
—

*© 2026 YesithTK — ProxyCore. All Rights Reserved.*
ProxyCommandBridge
# General
With this plugin, commands can be sent from the proxy server to a sub-server and executed there. The player name (for server selection) and the command to be executed on the sub-server are specified as parameters.
# Installation
1. Download the plugin
2. Put the .jar file into the plugin folder (proxy and all sub-servers)
3. Start your server
(Note: No configuration folder is created as no configurations are necessary)
# Commands
/pcb
### Example 1
“/pcb morelaid say Hello World!”
This executes the command “/say Hello World!” on the sub-server on which the player “Morelaid” is currently located.
### Example 2
“/pcb morelaid give morelaid diamaond 1”
This executes the command “/give morelaid diamond 1” on the sub-server on which the player “Morelaid” is currently located.
# Permissions
– pcb.admin.pcb
# Functionality
– The selected player must be active on the server
– The commands are executed as a console, so the player does not need any permission for this
# Supported Software
– Velocity
– BungeeCord
– Spigot (with all forks (incl. Paper, Purpur))
# Support
Questions or requests can be made via the Discord Support
ProxyChat

# ProxyChat
A chat plugin for Minecraft proxies providing proxy-wide private messaging, chat channels and more!
ProxyChat is part of my proxy plugin suite. You can find all my proxy plugins below:
– ProxyChat
– ProxyUtils
Installation instructions and other documentation can be found in the Wiki.
## Features
– MiniPlaceholders support
– Private messaging
– Chat channels
– Automated messages
– Welcome message
– Broadcast command
ProxyChat also supports hooking into most popular Friends and Vanish plugins to further extend the functionality.
See the wiki page for more information.
## Supported proxies
– Bungeecord / Waterfall
– Velocity
## Discord
Can’t find what you’re looking for in the wiki?
Join the Discord server where you can get support or just hangout with the community.
## Metrics
bStats is used to collect anonymous usage data which is used to make decisions concerning the future of the plugin.
The collected data is publicly available and can be viewed here:
– Bungeecord
– Velocity
Proxy-Utils
—
**Proxy-Utils Plugin Documentation**
*Developed by MineFlow Studios*
—
## **Overview**
Proxy-Utils is a powerful Velocity proxy plugin designed to streamline server management by offering a range of essential tools. With features such as broadcasting announcements, managing server connections, handling proxy restarts, and monitoring plugin statuses, Proxy-Utils ensures a seamless and efficient experience for both administrators and players.
—
## **Installation**
1. **Download** the `Proxy-Utils.jar` file.
2. **Place** the JAR in your proxy server’s `plugins` directory.
3. **Start** your Velocity proxy server. Configuration files (`settings.yml`) will be generated automatically.
—
## **Configuration**
Located in `plugins/Proxy-Utils/`.
– **settings.yml**
“`yaml
servers:
lobby: lobby-server
smp: smp-server
hub: hub-server
commands:
/lobby: lobby
/l: lobby
/smp: smp
/hub: hub
defaultRestartTime: 600 # Default restart time in seconds (e.g., 10 minutes)
broadcastIntervals:
– 600
– 300
– 60
– 50
– 25
– 10
– 9
– 8
– 7
– 6
– 5
– 4
– 3
– 2
– 1
messages:
announce: “&a[Announcement] &f{message}”
restartKick: “&cWe are restarting, please rejoin.”
restartCancelled: “&cThe proxy restart has been &lCANCELLED!”
restartCountdown: “&cRestart in {timeLeft}…”
“`
– **settings.yml** Details:
– **servers:**
Defines server identifiers and their corresponding server names.
– **commands:**
Maps specific command aliases to server identifiers for dynamic server commands.
– **defaultRestartTime:**
Sets the default time (in seconds) for the proxy restart countdown if no time is specified in the `/proxyrestart` command.
– **broadcastIntervals:**
Specifies the intervals (in seconds) at which countdown messages are broadcasted to players during a proxy restart.
– **messages:**
Customizable messages for various plugin actions, supporting color codes with the `&` symbol and placeholders like `{message}` and `{timeLeft}`.
—
## **Commands**
### **General Commands**
– **`/announce `**
*Broadcasts a customized announcement message to all players. Supports color codes using the `&` symbol.*
**Usage:**
“`
/announce
“`
**Example:**
“`
/announce Welcome to the server! &aEnjoy your stay!
“`
– **`/proxyrestart [timeInSeconds]`**
*Initiates a countdown to restart the proxy server. If no time is specified, the default restart time from `settings.yml` is used. During the countdown, specified broadcast intervals will notify players of the impending restart.*
**Usage:**
“`
/proxyrestart [timeInSeconds]
“`
**Examples:**
– Start a restart countdown with the default time:
“`
/proxyrestart
“`
– Start a restart countdown with a specified time (e.g., 300 seconds):
“`
/proxyrestart 300
“`
– **`/cancelproxyrestart`**
*Cancels any active proxy restart countdown. Notifies all players that the restart has been canceled.*
**Usage:**
“`
/cancelproxyrestart
“`
– **`/server [serverName]`**
*Sends the player to the specified server. If no server name is provided, it lists all available servers as defined in `settings.yml`.*
**Usage:**
“`
/server
“`
**Aliases:**
“`
/srv
“`
**Examples:**
– Send to a specific server:
“`
/server lobby
“`
– List all available servers:
“`
/server
“`
– **Dynamic Server Commands (e.g., `/lobby`, `/smp`, `/hub`)**
*Provides quick access to specific servers without the need to use the `/server` command. Each dynamic command corresponds to a server defined in `settings.yml`.*
**Usage:**
“`
/
“`
**Examples:**
– Send to the lobby server:
“`
/lobby
“`
– Send to the SMP server:
“`
/smp
“`
– Send to the hub server:
“`
/hub
“`
– **`/proxyplugins`**
*Lists all plugin JAR files present in the proxy’s plugins directory. Indicates whether each plugin is loaded correctly (green) or not loaded (red). Additionally, displays the version of each plugin if available.*
**Usage:**
“`
/proxyplugins
“`
—
## **Permissions**
| **Permission Node** | **Description** | **Default Access** |
|———————————–|———————————————————–|————————-|
| `proxyutils.announce` | Allows the use of the `/announce` command. | Administrators/Admins |
| `proxyutils.proxyrestart` | Allows the use of the `/proxyrestart` command. | Administrators/Admins |
| `proxyutils.cancelproxyrestart` | Allows the use of the `/cancelproxyrestart` command. | Administrators/Admins |
| `proxyutils.server` | Allows the use of the `/server` command. | All Players |
| `proxyutils.server.` | Allows the use of dynamic server commands (e.g., `/lobby`).| Administrators/Admins |
| `proxyutils.proxyplugins` | Allows the use of the `/proxyplugins` command. | Administrators/Admins |
**Setting Permissions Example (LuckPerms):**
“`
lp group admin permission set proxyutils.announce true
lp group admin permission set proxyutils.proxyrestart true
lp group admin permission set proxyutils.cancelproxyrestart true
lp group admin permission set proxyutils.server true
lp group admin permission set proxyutils.server.lobby true
lp group admin permission set proxyutils.server.smp true
lp group admin permission set proxyutils.server.hub true
lp group admin permission set proxyutils.proxyplugins true
“`
**Notes:**
– **Dynamic Server Permissions:** Replace `` with the actual server identifier as defined in your `settings.yml`. For example, if you have a server named `lobby`, the permission node would be `proxyutils.server.lobby`.
– **Console Access:** Commands executed from the console are not subject to permission checks and are permitted by default.
—
## **Usage Tips**
– **Permissions Management:**
Ensure that permissions are correctly assigned to user groups to control access to various commands. Typically, only administrators should have access to `/proxyrestart`, `/cancelproxyrestart`, and `/proxyplugins`.
– **Server Definitions:**
Keep your `settings.yml` up-to-date with all active servers to ensure that players can seamlessly switch between them using the `/server` commands or dynamic server commands.
– **Broadcast Intervals:**
Customize the `broadcastIntervals` in `settings.yml` to control how frequently players are notified about impending proxy restarts, enhancing communication and reducing potential confusion.
– **Plugin Monitoring:**
Regularly use the `/proxyplugins` command to monitor the status of installed plugins, helping you quickly identify and address any issues related to plugin loading.
– **Color Codes:**
Utilize the `&` symbol in messages within `settings.yml` to add color and formatting, making announcements and notifications more visually appealing.
—
**Enjoy managing your Velocity proxy with Proxy-Utils!**
—
Proxy Messages
# Proxy-Messages
## Unified System and Player Messages for Your Velocity/Paper Network
ProxyMessages is a powerful Velocity plugin designed to unify your network’s messaging system across all servers. ProxyMessages can be configured to send messages to players across all servers for player chat messages, proxy connections, disconnections, and server changes. Whether you run a small network or a large-scale operation, ProxyMessages helps you deliver a seamless player experience by synchronizing key messages across your entire server network.
Join my Discord!

## Key Features:
* Global messages so players can communicate with one another, even if they aren’t connected to the same server.
* Configurable Messages: Customize join, leave, and server switch messages with ease, tailoring them to fit the tone and style of your server network.
* Multiple Message Variants: Create multiple potential messages for each event, allowing for variety and keeping the experience fresh for your players.
* Custom Colors with HEX Support: Enhance your messages with custom colors using HEX codes to match your server’s branding or aesthetic.
* Abitility to instate network-wide resource packs.
* Integration with Discord to keep your sever network connected over discord!
### Configuration Overview:
All configurations are managed on the proxy side, meaning there’s no need to synchronize settings across individual backend servers. Simply edit the `config.yml` file located in `plugins/proxymessages/` on your proxy server to get started.
### The Paper Plugin:
ProxyMessages can work standalone on a velocity server. However, due to limitations in the velocity API, it cannot edit or change the vanilla messages that normally appear on servers. These include the vanilla join and leave messages, as well as vanilla chat messages on the server that the player is connected to. If you’d like remove the vanilla join and leave messages, and format chat messages, please use the provided paper plugin on all of your backend servers. Once the paper plugin is installed, the aforementioned features will automatically start working. No extra configuration is needed.
#### **COLOR**:
In all message options, you can insert a hex code inside brackets (example: `{#ff0066}`). All text after the hex code **except player names** will be turned into that color. You can use this multiple times in one string for a multicolored message. Default color for all text is yellow.
#### **STYLING**
In all message options, you can use Kyori Adventure TextDecoration options to further style your join options. Options include:
* `{bold}` – text after this tag is bold
* `{italic}` – text after this tag is italic
* `{strike}` – text after this tag has strikethroughs
* `{underline}` – text after this tag is underlined
* `{obfuscate}` – text after this tag is obfuscated
Two sets of these tags will “open” and “close” their syle. For example, you can stylize a chunk of text by sandwitching it between the corresponding tags.
### Key Configuration Options:
* `default-player-color`: The default color for players who havent set a color for their name.
* `global-network-join`: Toggle the join message for all users when a player joins the network.
* `global-network-leave`: Toggle the leave message for all users when a player leaves the network.
* `global-network-switch`: Toggle the server switch message for all users when a player moves between servers.
* `global-messages`: Toggle the server’s ability to send player’s messages across all servers.
* `join-message-options`: Define a list of potential join messages. Use {player} as a placeholder for the player’s username.
* `leave-message-options`: Define a list of potential leave messages. Use {player} as a placeholder for the player’s username.
* `switch-message-options`: Define a list of potential switch messages. Use {player}, {prev} for the previous server, and {cur} for the current server as placeholders.
* `global-message-prefix`: The prefix to global messages for other servers. Use {player} for the player sending the message, and {cur} as the server they’re sending the message from.
### Player Specific Name Coloring:
Players can customize the color of their name individually. They simply need to execute the command `set-color #xxxxxx` where `#xxxxxx` is a standard hex code.
Player’s names can also be changed by another player (I’m planning on making this an operator only feature soon…) with the command `set-color #xxxxxx playerName`
### Config Reloading
The configuration for this plugin can reload on the fly!
Simply make changes to your config file and use either `pmReload` or `reloadPM`, and the config changes will take effect!
### Global Player Messaging:
Once `global-messages` is enabled, players can toggle their messages between “global” and “local” by using any of the following commands (aliases used for convenience):
* `toggleGM`
* `tGM`
* `pmToggle`
#### `global-message-defaults` is whether or not player’s messages will be global by default (they can still be toggled if true)
**Global messages** mean that the user’s messages will be displayed in the server they are connected to, as well as all other servers on the network.
**Local messages** mean that the user’s messages will only be displayed in the server they are connected to.
### Resource Packs:
This section discusses the ability to instate a network-wide resource pack
Under the `network-resource-pack` section of your `config.yml`:
`enabled`: toggles the resource pack on and off
**Note:** None of the configuration from this point forward will not matter if `enabled` is `false`
* `url`: The download url of your resource pack
* `sha1-hash`: The hash of your resource pack
**NOTE**: At this time, a hash will do nothing, as I don’t know how to properly translate it to a byte array. If you know how, please open a PR or Issue ticket on the github page for this project.
* `prompt`: The prompt users will recieve, inquiring abotu whether they want the resource pack
* `required`: Whether or not the resource pack is required to play on the network
* `except`: A list of servers to ignore when sending resource packs to players.
### Discord:
This section discusses the discord integration functionality features and customizability.
Under the `discord` section of your `config.yml`:
`enabled`: Toggles the discord functionality.
**Note:** None of the configuration from this point forward will not matter if `enabled` is `false`
* `bot-token`: A string that represents the bot token that the plugin will attempt to connect to. This is the same as the one you might use in the DiscordSRV plugin.
* `proxy-channel-id`: The ID of the channel you want the proxy’s messages to be sent to.
* `server-channel-ids`: A list of server names and a corresponding discord channel ID. Messages will be linked between each server and its corresponding channel.
* `join-color`: Hex color code to be used for the Discord embed for join messages.
* `leave-color`: Hex color code to be used for the Discord embed for leave messages.
* `switch-color`: Hex color code to be used for the Discord embed for switch messages.
* `text-configuration`: Options to customize the messages that get sent. Text options support markdown formatting.
* `online-message`: The message to be sent when the proxy boots up.
* `offline-message`: The message to be sent when the proxy shuts down.
* `player-message-prefix`: The prefix to a player’s message going to discord – if global messages are enabled, it will use the global messaging prefix instead
* `discord-role-color`: When true, any messages from discord will color the name of the sender with the color of their role in discord.
* `server-count`: Toggles whether a list of active servers will be printed when booting the proxy.
* `display-icon`: Toggles whether or not to display a provided image on startup and shutdown.
**Note:** `display-icon` will not work unless you provide an image for it to display. You can do this by placing an image named `icon.jpg` in your `plugins/proxymessages` directory. When turned to `true`, the plugin will detect the image and use it automatically.
Proxy Essentials
# Proxy Essentials Plugin
![Banner][banner]
[![Modrinth][badge-modrinth]][modrinth]
[![License][badge-license]][license]
[![Discord][badge-discord]][social-discord]
[![Follow @simplecloudapp][badge-x]][social-x]
[![Follow @simplecloudapp][badge-bluesky]][social-bluesky]
[![Follow @simplecloudapp][badge-youtube]][social-youtube]
[Report a Bug][issue-bug-report]
·
[Request a Feature][issue-feature-request]
🌟 Give us a star — your support means the world to us!
> All information about this project can be found in our detailed [documentation][docs-thisproject].
The Proxy Plugin enhances your server network with customizable MOTD (Server Info) and Tablist features, offering extensive customization options through simple configuration files. All settings are synchronized across all proxies.
## Features
– [x] **Mutliple MOTD Layouts**: Create multiple MOTD Layouts for different states!
– [x] **Custom Tablist**: Send your Players custom Tablist Header and Footer!
– [x] **Joinstates**: Create different joinstates so your players can only join with certain permissions (you can call it advanced maintenance feature)
## Contributing
Contributions to SimpleCloud are welcome and highly appreciated. However, before you jump right into it, we would like you to read our [Contribution Guide][docs-contribute].
## License
This repository is licensed under [Apache 2.0][license].
[banner]: https://raw.githubusercontent.com/simplecloudapp/branding/refs/heads/main/readme/banner/plugin/proxy-essentials.png
[issue-bug-report]: https://github.com/theSimpleCloud/proxy-essentials-plugin/issues/new?labels=bug&projects=template=01_BUG-REPORT.yml&title=%5BBUG%5D+%3Ctitle%3E
[issue-feature-request]: https://github.com/theSimpleCloud/proxy-essentials-plugin/discussions/new?category=ideas
[docs-thisproject]: https://docs.simplecloud.app/plugin/proxy-essentials
[docs-contribute]: https://docs.simplecloud.app/contribute
[modrinth]: https://modrinth.com/plugin/proxy-essentials-plugin
[maven-central]: https://central.sonatype.com/artifact/app.simplecloud.controller/controller-api
[dev]: https://repo.simplecloud.app/#/snapshots/app/simplecloud/controller/controller-api
[artifacts]: https://repo.simplecloud.app/#/snapshots/app/simplecloud/controller/controller-api
[dev-artifacts]: https://repo.simplecloud.app/#/snapshots/app/simplecloud/controller/controller-api
[badge-maven-central]: https://img.shields.io/maven-central/v/app.simplecloud.controller/controller-api?labelColor=18181b&style=flat-square&color=65a30d&label=Release
[badge-dev]: https://repo.simplecloud.app/api/badge/latest/snapshots/app/simplecloud/controller/controller-api?name=Dev&style=flat-square&color=0ea5e9
[license]: https://opensource.org/licenses/Apache-2.0
[snapshots]: https://repo.simplecloud.app/#/snapshots
[social-x]: https://x.com/simplecloudapp
[social-bluesky]: https://bsky.app/profile/simplecloud.app
[social-youtube]: https://www.youtube.com/@thesimplecloud9075
[social-discord]: https://discord.simplecloud.app
[badge-modrinth]: https://img.shields.io/badge/modrinth-18181b.svg?style=flat-square&logo=modrinth
[badge-license]: https://img.shields.io/badge/apache%202.0-blue.svg?style=flat-square&label=license&labelColor=18181b&style=flat-square&color=e11d48
[badge-discord]: https://img.shields.io/badge/Community_Discord-d95652.svg?style=flat-square&logo=discord&color=27272a
[badge-x]: https://img.shields.io/badge/[email protected]?style=flat-square&logo=x&color=27272a
[badge-bluesky]: https://img.shields.io/badge/[email protected]?style=flat-square&logo=bluesky&color=27272a
[badge-youtube]: https://img.shields.io/badge/youtube-d95652.svg?style=flat-square&logo=youtube&color=27272a
Proxy Command Reloaded
# Proxy Command Reloaded

A fork of “Proxy Comand”, and updated to the most recent versions of Minecraft.
## What is it?
A command that allows to send commands from your minecraft server instances to a velocity proxy.
## Installation
To install this mod on fabric minecraft servers these requirements must be met:
* **fabric** and **fabric API** is installed on your minecraft servers
* **FabricProxy-Lite** is installed and working on your minecraft servers
* You have a velocity server up and running
* You must install both the fabric mod and the velocity plugin
## Forge
As of 10/12/2023, this project is compatible with the latest version of Sinytra Connector, v1.0.0-beta build 18. If you need this project on forge, try this out while.
—-
The project source is available on github/GeraldTM with the latest
readme here.
## Usage instructions
On minecraft server instances the command `proxycommand “[command]”` can get used via command blocks or other
command sources, where a player is the source. The player must be a source of the command, since the plugin and
velocity needs this to handle the context of the command execution and send e.g. error messages back to
the player.
For example, you can teleport all players to a different server with a command block using
“`
execute as @a run proxycommand “server SERVERNAME”
“`
## Changelog
Changelog per release cycle can be found here.
This changelog contains information from one release to the next one.
## License
MIT License
## Additional reading (for devs)
* Fabric wiki
* Multiloader template
Thanks to @michiruf for the original project
Proxy Announcer
A simple and configurable proxy announcement plugin for Bungeecord and Velocity win customizable messages and much more coming soon…
### Commands:
– /announce – Announce a message globally to all servers.
– /announceserver – Announce a message to a specific server.
### Coming Soon
– Auto Broadcaster
ProtoWeaver




# ProtoWeaver
A minecraft networking library for creating custom protocols that run on the internal netty server.
#### What dis mean?
Sick and tired of hyjacking client connections to send data to and from a proxy? Well I sure was. ProtoWeaver allows you to create a custom protocol that runs on the same port that the minecraft server uses.
This means a proxy such as velocity is able to communicate with the server regardless if players are on online or not, without running an extra socket server on a different port. Protoweaver is also not just
limited to proxies. Using the `client` module, any 3rd party java application can talk directly with ProtoWeaver!
Protoweaver is fast, secure, and easy to use. All protocols run under the same netty instance used by minecraft, are encypted with ssl, and are wrapped in a very straight forward api. Lets take a look:
### Features
– [x] Zero user config required
– [x] SSL encrytion
– [x] Protocol authentication
– [x] Packets as POJO’s
– [x] Compression (Gzip, Snappy, LZ)
– [x] All major mod loaders (neoforge soon tm)
– [ ] API for registering raw protocols (http, ssh, etc)
– [x] Custom serialization
– [ ] Custom SSL providers/certs
– [ ] Muti-protocol connections
– [ ] Tell me what you want to see!
### Project Setup
In your build.gradle include
*** Note: **Do not shade protoweaver! It will not work properly. ProtoWeaver is a mod/plugin that is installed along side yours!**
“` gradle
repositories {
maven { url “https://maven.mrnavastar.me/releases” }
}
dependencies {
// ‘common’ can be replaced with any of: `client`, `fabric`, `forge`, `paper` or `proxy`.
implementation “me.mrnavastar.protoweaver:common:1.3.11”
}
“`
### Creating a Protocol
Protocols are very customizable with a lot of built in functionality. Here is an example protocol:
“`java
Protocol protocol = Protocol.create(“my_mod_id”, “cool_protocol”)
.setCompression(CompressionType.GZIP)
.setServerHandler(MyCustomServerHandler.class)
.setClientHandler(MyCustomClientHandler.class)
.setMaxConnections(15)
.addPacket(String.class)
.build();
// Load the protocol before it can be used
ProtoWeaver.load(protocol);
“`
### Sending packets
Sending packets is extremely simple. Any POJO that has been added to the protocol (See [Creating a Protcol](#creating-a-protocol)) is a valid packet that can be sent. Note that all POJO serialization is handled through kyro, a fast and fast serialization library.
“`java
// If you have a reference to a ‘ProtoConnection’, you can simply:
connection.send(myObject);
// If you have a reference to a ‘ProtoClient’, you can also:
client.send(myObject);
“`
### Handling packets
All protocols need handlers in order to implement functionality. The client and server can either use the same handler, or both use different ones.
“`java
public class MyCustomServerHandler implements ProtoConnectionHandler {
// Note that all functions are optional to implement
@Override
public void void onReady(ProtoConnection connection) {
System.out.println(“awesome! looks like a new client has connected from: ” + connection.getRemoteAddress());
}
@Override
public void onDisconnect(ProtoConnection connection) {
System.out.println(“goodbye: ” + connection.getRemoteAddress());
}
@Override
public void handlePacket(ProtoConnection connection, Object packet) {
System.out.println(“wow! got: ” + packet.toString() + ” from: ” + connection.getRemoteAddress());
}
}
“`
“`java
public class MyCustomClientHandler implements ProtoConnectionHandler {
// Note that all functions are optional to implement
@Override
public void void onReady(ProtoConnection connection) {
System.out.println(“awesome! connected to: ” + connection.getRemoteAddress());
}
@Override
public void onDisconnect(ProtoConnection connection) {
System.out.println(“goodbye: ” + connection.getRemoteAddress());
}
@Override
public void handlePacket(ProtoConnection connection, Object packet) {
System.out.println(“saying hi!”);
connection.send(“Hey server!”);
}
}
“`
### Custom Serialization
Sometimes it can be useful to send minecraft objects or other premade POJO’s in your protocol. To allow this, you can register a custom serializer.
For example, here is a serializer for NBT tags:
“`java
public class NbtSerializer extends ProtoSerializer {
public NbtSerializer(Class type) {
super(type);
}
@Override
public void write(ByteArrayOutputStream buffer, CompoundTag value) {
try {
NbtIo.writeCompressed(value, buffer);
} catch (IOException e) {
Platform.throwException(e);
}
}
@Override
public CompoundTag read(ByteArrayInputStream buffer) {
try {
return NbtIo.readCompressed(buffer, NbtAccounter.unlimitedHeap());
} catch (IOException e) {
Platform.throwException(e);
throw new RuntimeException(e);
}
}
}
“`
Then to register the serializer, simply do:
“`java
Protocol protocol = Protocol.create(“my_mod_id”, “cool_protocol”)
.setCompression(CompressionType.GZIP)
.setServerHandler(MyCustomServerHandler.class)
.setClientHandler(MyCustomClientHandler.class)
.setMaxConnections(15)
.addPacket(CompoundTag.class, NbtSerializer.class)
.build();
“`
### More Docs Coming soon! Maybe a real website??