ViaBackwards
# ViaBackwards
**On Fabric, use either [ViaFabric](https://modrinth.com/mod/viafabric) or [ViaFabricPlus](https://modrinth.com/mod/viafabricplus). To override the included version**
– in **ViaFabric**, put ViaBackwards into the `mods` folder
– in **ViaFabricPlus**, put ViaBackwards into the `ViaFabricPlus/jars` folder
**Depending on the platform and version, this also requires [ViaVersion](https://modrinth.com/mod/viaversion).**
Requires Java 17. See [here](https://docs.papermc.io/misc/java-install) how to update your installed Java version. As a last resort, you can download Java 8 downgraded builds from [our ci](https://ci.viaversion.com/view/ViaBackwards/job/ViaBackwards-Java8/).
## Get access to Via* with new MC version support early
**Starting with 1.20.5, ViaVersion and ViaBackwards will only be released a day or so *after* a Minecraft update** unless the protocol changes of the update were trivial. **If you want early-access, usually days or even weeks before the final release, you can subscribe to either**:
– [GitHub Sponsors](https://github.com/sponsors/kennytv/sponsorships?sponsor=kennytv&tier_id=385613&preview=false) (*preferred option, also comes with source code access*. Use the `/verify` command on this Discord after), or alternatively
– [Patreon](https://www.patreon.com/kennytv/membership) (see the highest tier and make sure to link Patreon to your Discord account under Discord Settings->Connections)
## Note on release channels
It is recommended to always use the latest beta release. Alpha builds are used for work on snapshot version compatibility or other cutting-edge changes.
**Always use the same build channel across the ViaVersion, ViaBackwards, and ViaRewind projects.**
Releases/Dev Builds
–
You can find releases in the following places:
– **Hangar (for our plugins)**: https://hangar.papermc.io/ViaVersion/ViaBackwards
– **Modrinth (for our mods)**: https://modrinth.com/mod/viabackwards
– **GitHub**: https://github.com/ViaVersion/ViaBackwards/releases
Dev builds for **all** of our projects are on our Jenkins server:
– **Jenkins**: https://ci.viaversion.com/view/ViaBackwards/
Known issues
–
* 1.17+ min_y and height world values that are not 0/256 **are not supported**. Clients older than
1.17 will not be able to see or interact with blocks below y=0 and above y=255
* <1.17 clients on 1.17+ servers might experience inventory desyncs on certain inventory click actions
* Sound mappings are incomplete ([see here](https://github.com/ViaVersion/ViaBackwards/issues/326))
Other Links
-
**Maven:** https://repo.viaversion.com
**List of contributors:** https://github.com/ViaVersion/ViaBackwards/graphs/contributors
Special Thanks
-

[YourKit](https://www.yourkit.com/) supports open source projects with innovative and intelligent tools
for monitoring and profiling Java and .NET applications.
YourKit is the creator of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/),
[YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/),
and [YourKit YouMonitor](https://www.yourkit.com/youmonitor/).
ViaAprilFools
# ViaAprilFools
ViaVersion addon to add support for some notable Minecraft snapshots.
**You can override the included version in [ViaFabric](https://modrinth.com/mod/viafabric) or [ViaProxy](https://github.com/ViaVersion/ViaProxy):**
– in **ViaFabric**, put ViaAprilFools into the `mods` folder
– in **ViaProxy**, put ViaAprilFools into the `jars` folder
Requires Java 17. See [here](https://docs.papermc.io/misc/java-install) how to update your installed Java version.
**Requires [ViaVersion](https://hangar.papermc.io/ViaVersion/ViaVersion) and [ViaBackwards](https://hangar.papermc.io/ViaVersion/ViaBackwards) to be installed..**
### Added Server protocols
– 3D Shareware
– 20w14infinite
– Combat Test 8c
### Added Client protocols
– 3D Shareware
– Combat Test 8c
## Contact
If you encounter any issues, please report them on the
[issue tracker](https://github.com/ViaVersion/ViaAprilFools/issues).
If you just want to talk or need help implementing ViaAprilFools feel free to join the ViaVersion
[Discord](https://discord.gg/viaversion).
vHubs
# vHubs
    
vHubs is a lightweight, configurable Velocity plugin for managing hub servers and hub behaviour across your proxy network. It focuses on easy setup, flexible hub definitions, and useful convenience commands to streamline player flow on large networks.
## Features
– Hub server management: define one or more hub servers. Allows for randomized server selection.
– Simple commands for staff and users to teleport to hubs.
– Permission-based control for fine-grained access.
## Quick start
1. Drop `vHubs-VERSION.jar` into your Velocity `plugins` folder.
2. Start or restart your Velocity proxy to generate the default config.
3. Edit `plugins/vhubs/config.yml` to add your hubs and preferences.
## Installing
1. Place `vHubs-VERSION.jar` into your Velocity `plugins` folder.
2. Start or restart your Velocity proxy.
3. Edit the generated configuration file (`plugins/vhubs/config.yml`) to suit your preferences.
Once installed and configured, vHubs will automatically handle hub commands behavior according to your config.
Permission nodes are configurable in your permission manager of choice.
## Why vHubs?
– Purpose-built for Velocity: simple, stable, and focused on proxy-side hub logic.
– Quick setup: install, edit a small YAML, and you’re ready.
– Community-friendly: open to feedback and contributions.
## Contributing
Contributions are welcome. Good first steps:
– Open issues to report bugs or propose features.
– Submit pull requests with clear descriptions and tests where possible.
– Follow repository code style and include a changelog entry for larger changes.
## Building from Source
Prerequisites: Java 17+, Maven.
“`bash
git clone https://github.com/szymon-off/vHubs.git
cd vHubs
mvn clean package
“`
The built jar will be in the `target` directory.
## Support
For help or to report issues, please use the [GitHub Issues page](https://github.com/szymon-off/vHubs/issues)
or join our [Discord server](https://discord.gg/your-invite-link).
## License
vHubs is licensed under the GPLv3 License. See the [LICENSE](LICENSE.md) file for details.
vespigot
# Vepaper – run and control standalone Paper servers from Velocity
**Version 1.12.4** · requires **Velocity 3.4+** and **Java 17+**
—
## 1. What is Vepaper?
Vepaper is a Velocity proxy plug-in that launches one or more Paper servers as **local
sub-processes** and lets you manage them directly from the proxy.
* Drop‐in install – just put the jar in *plugins/* and start Velocity.
* Latest Paper jar is downloaded automatically.
* Generates `server.properties` and silently accepts the Mojang EULA.
* Paper console output is relayed to the Velocity console
(can be toggled with a command).
* Send any Paper console command from Velocity.
* **No file is ever modified** outside the instance folder
(your `velocity.toml`, `paper-global.yml`, secrets, etc. stay untouched).
—
## 2. Installation
1. Build from source (`mvn clean package`, JDK 17) **or** download the release jar.
2. Place `vepaper-*.jar` in Velocity’s `plugins/` folder.
3. Start / restart Velocity.
* `plugins/vepaper/` and `config.properties` are created automatically.
* Default settings
* 1 Paper instance
* port **25563**
* **4096 MB** RAM
4. Modify `config.properties` if needed and restart Velocity.
—
## 3. Configuration (`plugins/vepaper/config.properties`)
| key | default | description |
|—————-|———|———————————————–|
| `instances` | 1 | How many Paper servers to start |
| `startingPort` | 25563 | TCP port for the first instance (next = +1) |
| `maxMemoryMb` | 4096 | Memory (MB) per instance |
—
## 4. Commands (proxy console / in-game OP)
| Command | Effect |
|—————————————-|——————————————————————————————|
| `/paper ` | Send arbitrary console command to a Paper instance.
• `index` = 0-based order
• `port` = TCP port |
| `/paperlog on` / `/paperlog off` | Enable / disable log relay (default **on**). |
Examples
“`text
/paper 0 say Hello from Velocity!
/paper 25563 stop
/paperlog off
“`
—
## 5. Files generated per instance
“`
servers/
└─ paper-25563/
├─ paper.jar (auto-downloaded)
├─ eula.txt (always `eula=true`)
├─ server.properties (port etc.)
└─ latest.log (Paper console output)
“`
Vepaper never touches `paper-global.yml`, `spigot.yml`, resource-pack settings, or
any secret values – you can edit them manually whenever you like.
—
## 6. Uninstallation
Stop Velocity, remove `vepaper-*.jar` and the `plugins/vepaper/` folder.
Delete the directories under `servers/` if you no longer need the standalone Paper
instances.
—
## 7. License
Released under the **MIT License** – see the repository for details.
“`
VersionTinmoli
# VersionTinmoli
> **Version**: 1.0.2
> **Supported Platforms**: Velocity 3.0+ | BungeeCord 1.16+ | Bukkit/Spigot/Paper 1.20.1+
A lightweight Minecraft proxy/server plugin for customizing the version name displayed in the server list, with rich color and formatting support.
[中文文档](README_CN.md) | [English Documentation](README.md)
—
## Table of Contents
– [Features](#features)
– [Supported Platforms](#supported-platforms)
– [Quick Start](#quick-start)
– [Color Support](#color-support)
– [Commands](#commands)
– [Configuration](#configuration)
– [FAQ](#faq)
– [Changelog](#changelog)
—
## Features
– **Colored Version Names** – Velocity supports MiniMessage format (RGB, gradients, rainbow), BungeeCord/Bukkit support legacy color codes
– **Rich Formatting** – Bold, italic, underline, strikethrough support
– **Hot Reload** – Reload configuration with `/vt reload` command
– **Dynamic Modification** – Instantly modify version name with `/vt md ` command
– **Simple Configuration** – YAML configuration file
– **Lightweight** – No performance impact
– **Auto Fallback** – Compatible with older client versions
– **Multi-language** – Supports English and Chinese
—
## Supported Platforms
| Platform | Version | Java Version | Status |
|———-|———|————–|——–|
| Velocity | 3.0+ | Java 21+ | Fully Supported |
| BungeeCord | 1.16+ | Java 17+ | Fully Supported |
| Bukkit/Spigot | 1.20.1-1.21.11 | Java 17+ | Requires newer version |
| Paper | 1.20.1-1.21.11 | Java 17+ | Fully Supported |
—
## Quick Start
### Installation
1. Download the JAR file for your platform from [Releases](https://github.com/Tinmoli/VersionTinmoli/releases)
2. Place the JAR file in your server’s `plugins/` directory
3. Restart the server
4. Edit the configuration file (auto-generated)
5. Use `/vt reload` to reload the configuration
### Configuration File Location
– **Velocity**: `plugins/versiontinmoli/config.yml`
– **BungeeCord**: `plugins/VersionTinmoli/config.yml`
– **Bukkit**: `plugins/VersionTinmoli/config.yml`
—
## Color Support
### Velocity – MiniMessage Format
“`yaml
# Named colors
version_name: “Velocity 1.8-1.21”
# RGB colors (1.16+)
version_name: “<#FF5555>Red <#55FF55>Green”
# Gradient effects
version_name: “Rainbow Server”
# Rainbow effects
version_name: “Rainbow Server”
# Style combinations
version_name: “VIP | Online”
“`
**Available Colors**: ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``
**Available Styles**: ``, ``, ``, ``
—
### BungeeCord/Bukkit – Legacy Color Codes
“`yaml
# Basic colors
version_name: “&6BungeeCord &71.8-1.21”
# With formatting
version_name: “&l&6VIP Server&r &7| &a1.8-1.21”
# Multi-color combinations
version_name: “&cRed &6Gold &eYellow &aGreen”
“`
**Color Codes**: `&0`-`&9`, `&a`-`&f` (black, dark blue, dark green, dark aqua, dark red, purple, gold, gray, dark gray, blue, green, aqua, red, pink, yellow, white)
**Format Codes**: `&l` (bold), `&m` (strikethrough), `&n` (underline), `&o` (italic), `&r` (reset)
—
### Client Compatibility
| Client Version | Supported Colors |
|—————-|——————|
| 1.16+ | Full RGB colors |
| 1.7-1.15 | 16 named colors |
| < 1.7 | Basic colors |
---
## Commands
| Command | Permission | Description |
|---------|------------|-------------|
| `/vt` | `versiontinmoli.admin` | Show plugin information |
| `/vt reload` | `versiontinmoli.admin` | Reload configuration file |
| `/vt md ` | `versiontinmoli.admin` | Modify version name |
**Permission Notes**: Velocity/BungeeCord require `versiontinmoli.admin` permission, Bukkit defaults to OP
—
## Configuration
### Basic Configuration
“`yaml
# VersionTinmoli Configuration File
# Customize the version name displayed in the server list
# Language setting (en_US or zh_CN)
language: “en_US”
# Version name configuration
version_name: “Velocity 1.8.x-1.21.11”
“`
### Language Settings
The plugin supports multiple languages. You can set the language in the configuration file:
– `en_US` – English
– `zh_CN` – Simplified Chinese
After modifying the `language` field, use `/vt reload` to reload the configuration and switch languages. All command messages and prompts will be displayed in the corresponding language.
### Language File Customization
Language files are automatically copied to the external directory on first run:
– **Velocity**: `plugins/versiontinmoli/lang/`
– **BungeeCord**: `plugins/VersionTinmoli/lang/`
– **Bukkit**: `plugins/VersionTinmoli/lang/`
You can edit these files to customize messages. The plugin will load from the external directory first, then fall back to the built-in files.
### Configuration Examples
**Regular Server**
“`yaml
# Velocity
version_name: “Minecraft 1.8-1.21”
# BungeeCord/Bukkit
version_name: “&6Minecraft &71.8-1.21”
“`
**VIP Server**
“`yaml
# Velocity
version_name: “VIP Server”
# BungeeCord/Bukkit
version_name: “&l&6VIP Server”
“`
**Minigames Server**
“`yaml
# Velocity
version_name: “MiniGames | Online”
# BungeeCord/Bukkit
version_name: “&cM&6i&en&ai&9G&ba&dm&5e&cs &f| &aOnline”
“`
**PVP Server**
“`yaml
# Velocity
version_name: “PVP | Fighting”
# BungeeCord/Bukkit
version_name: “&l&cPVP &r&7| &eFighting”
“`
—
## FAQ
### Migrating from TOML to YAML
If you’re upgrading from an older version (before v1.0.2), you need to migrate your configuration from TOML format to YAML format.
**Automatic Migration (Recommended):**
1. Backup your `config.toml` file
2. Delete the `config.toml` file
3. Restart the server or run `/vt reload`
4. The plugin will automatically create a new `config.yml` file
5. Edit `config.yml` and set your custom version name
**Manual Migration:**
TOML format (old):
“`toml
version_name = “My Server 1.20”
“`
YAML format (new):
“`yaml
version_name: “My Server 1.20”
“`
Main difference: Use colon `:` instead of equals sign `=`
### Configuration Not Working
1. Ensure the configuration file is in the correct location
2. Check YAML syntax is correct
3. Use `/vt reload` to reload configuration
4. If still not working, restart the server
### Colors Not Displaying or Showing as Text
**Problem**: RGB color codes display as text like `Red> Green>`
**Cause**: Using incorrect closing tags `>`
**Solution**:
“`yaml
# Wrong
version_name: “<#FF5555>Red> <#55FF55>Green>”
# Correct
version_name: “<#FF5555>Red <#55FF55>Green”
version_name: “Red Green”
“`
**Other Color Issues**:
1. **Velocity**: Use MiniMessage format `text`
2. **BungeeCord/Bukkit**: Use `&` or `§` color codes
3. RGB colors require Minecraft 1.16+ client
4. Check server logs for errors
### Platform-Specific Requirements
1. **Velocity**: Requires Velocity 3.0+ and Java 21+
2. **BungeeCord**: Requires BungeeCord 1.16+ and Java 17+
3. **Bukkit**: Requires Minecraft 1.20.1+ and Java 17+
—
## License
This project is licensed under the MIT License.
## Support
For issues or suggestions, please submit them on [GitHub Issues](https://github.com/Tinmoli/VersionTinmoli/issues).
—
**Documentation Version**: 1.0.2
**Maintainer**: Tinmoli
Version Blocker
**Version Blocker – Keep Your Server Safe from Wrong Game Versions**
**Description:**
– Version Blocker is a Velocity proxy plugin that ensures only players with the allowed Minecraft version can connect to your servers. It checks each player’s game version and:
–
– Blocks unsupported versions from accessing your Paper servers.
–
– Displays a custom message when a player’s version is incorrect.
–
– Ensures a smooth experience by preventing incompatible clients from joining.
**Key Features:**
– Enforce a single allowed game version.
– Customizable rejection message.
– Simple configuration and setup.
List of MC protocol : https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/Protocol_History
_**This is a very lightweight and simplistic plugin. No support or feature requests are available.**_
Version Separator
# Version separator
A Velocity plugin that separates players to different servers based on game version when connecting to the server.
## Configuration
The plugin uses TOML as the language of config file.
The key should be the protocol version, and the value should be the name of a registered server in `velocity.toml`.
### Example
“`toml
[servers]
763 = “modded”
767 = “latest-surv”
“`
This connects newly-joined player to `modded` server if using 1.20 or 1.21,
and connects to `latest-surv` server if using 1.21 or 1.21.1.
VerifyMC-Proxy
VerifyMC-Proxy is a companion plugin for VerifyMC that runs on your BungeeCord/Waterfall or Velocity proxy server. It intercepts player logins and verifies whitelist status via the VerifyMC backend API before allowing players to connect to your backend servers.
Features:
– Support for both BungeeCord/Waterfall and Velocity
– Real-time whitelist verification via HTTP API
– Customizable kick messages
– Multi-language support (English/Chinese)
– Auto-update configuration from remote
velostat
This plugin provides a lightweight HTTP API that exports the real-time status of all Velocity backend servers in JSON format.
Exported fields are fully configurable via `plugins/velostat/config.yml`, allowing safe public exposure.
The game version is for all versions supported by Velocity 3.4.0-SNAPSHOT as it is added to the proxy server only. The game version must be specified and is specified, but see the [Server compatibility](https://docs.papermc.io/velocity/server-compatibility/) for details.
– – –
# Installation
1. Download the latest release of the plugin
2. Put `velostat-x.x.jar` in /plugins directory of velocity
This completes the process!
– – –
# Config reference
| Setting name | Description | Default |
|:—————————|:———————————————————————————–|:——–|
| `api.port` | The port number for the internal HTTP server to listen on. | `8080` |
| `ping.interval_seconds` | The interval (in seconds) at which the plugin pings sub-servers to collect status. | `10` |
| `export.server.name` | Whether to include the server name (defined in Velocity) in the JSON output. | `true` |
| `export.server.address` | Whether to include the server address in the JSON output. | `true` |
| `export.server.status` | Whether to include the online/offline status in the JSON output. | `true` |
| `export.server.motd` | Whether to include the server’s MOTD (Message of the Day) in the JSON output. | `true` |
| `export.server.players` | Whether to include player counts (online/max) in the JSON output. | `true` |
| `export.server.version` | Whether to include the game version name and protocol version in the JSON output. | `true` |
| `export.server.updated_at` | Whether to include the last update timestamp in the JSON output. | `true` |
– – –
# Example Json output
Accessing `http://:/status` will return data with a `Content-Type: application/json`.
### FULL data
“`json
{
“lobby”: {
“name”: “lobby”,
“address”: “127.0.0.1:25565”,
“online”: true,
“motd”: “Welcome to the Lobby!”,
“players”: {
“online”: 12,
“max”: 100
},
“version”: {
“name”: “Paper 1.21.1”,
“protocol”: 767
},
“updated_at”: 1704681000000
},
“survival”: {
“name”: “survival”,
“address”: “127.0.0.1:25566”,
“online”: false,
“motd”: null,
“players”: {
“online”: 0,
“max”: 0
},
“version”: null,
“updated_at”: 1704681000000
}
}
“`
### Configured data
“`json
{
“lobby”: {
“name”: “lobby”,
“online”: true,
“motd”: “Welcome to the Lobby!”,
“players”: {
“online”: 12,
“max”: 100
},
“updated_at”: 1704681000000
},
“survival”: {
“name”: “survival”,
“online”: false,
“motd”: null,
“players”: {
“online”: 0,
“max”: 0
},
“updated_at”: 1704681000000
}
}
“`
## Field Description
### Root Object
| Field | Type | Description |
|———–|———|——————————————–|
| `servers` | `array` | List of servers defined in `velocity.toml` |
—
### Server Object
| Field | Type | Description |
|:————:|:———:|:——————————————————————|
| `name` | `string` | Server name defined in `[servers]` section of `velocity.toml` |
| `address` | `string` | Server address (`host:port`) |
| `online` | `boolean` | Whether the server responded to a ping |
| `motd` | `string` | Server MOTD (may contain legacy color codes) |
| `players` | `object` | Player information (only present if enabled and server is online) |
| `version` | `object` | Minecraft version information |
| `updated_at` | `number` | Last update timestamp(UNIX time) |
—
### Players Object
| Field | Type | Description |
|:——–:|:——–:|———————————-|
| `online` | `number` | Current number of online players |
| `max` | `number` | Maximum player capacity |
—
### Version Object
| Field | Type | Description |
|:———-:|:——–:|————————————-|
| `name` | `string` | Version name reported by the server |
| `protocol` | `number` | Minecraft protocol version |
—
## Notes
* Fields may be **omitted** depending on `config.yml` settings.
* If a server is offline, only `name`, `address`, and `online` are guaranteed.
* This API is intended for **internal dashboards, status pages, or monitoring tools**.
# Issue and question
If the plugin does not work properly, try deleting `config.yml`.
Problems and questions feature request [here]([https://github.com/stellarcielo/velostat/issues).
VeloFallback
VeloFallback is a Velocity plugin for auth-lobby setups. It forces first-time joins to an initial server (e.g. fakehub for AuthMe), but when players are kicked/disconnected from gameplay servers (survival, etc.) it redirects them to a configurable fallback lobby (hub) instead of sending them back to the auth server. Includes auto-generated config, fallback try list, and /velofallback reload.