Velocity Friends

This is a friends system for Velocity proxy servers that allows players to manage friendships, send messages, and interact across multiple servers.

> **What’s New in Version 1.4.0:**
>
> **Version & Status System:**
> – Built-in version checker with live update notifications and download links
> – Activity status system (Active/AFK/DND) with colored status indicators
> – Compatibility checker for Velocity versions
>
> **Enhanced Friend Interactions:**
> – Accept friend requests from offline players
> – Clickable friend names for quick messaging
> – DND mode blocks incoming messages
> – Status dots with hover text for all player states
>
> **Configuration Improvements:**
> – `disable_empty_messages` – Auto-disable empty config messages (default: true)
> – All messages, colors, and hover texts fully customizable
> – Tab-completion for /friend status command
>
> **Quality of Life:**
> – Improved error handling for empty messages
> – Better visual feedback and notifications
> – Minor bug fixes and performance improvements

**Commands:**
– `/friend add ` – Send a friend request
– `/friend accept ` – Accept a friend request (works with offline players)
– `/friend deny ` – Deny a friend request
– `/friend remove ` – Remove a friend
– `/friend list` – View all friends with online status and server location (click to join!)
– `/friend requests` – Show pending friend requests
– `/friend msg ` – Send a private message
– `/friend reply ` – Reply to the last message
– `/friend broadcast ` – Message all online friends
– `/friend status [active|afk|dnd]` – Set your activity status
– `/friend settings` – Open the interactive settings menu
– `/friend version` – Check plugin version and updates
– `/friend reload` – Reload configuration (admin only)

**Permissions:**
– friends.use – Basic permission to use the friends system
– friends.reload – Permission to reload the plugin configuration

**Settings Menu:**
Players can customize their experience with toggleable options:
– Friend Requests – Enable/disable receiving friend requests
– Notifications – Toggle friend online/offline notifications
– Messages – Enable/disable friend messages
– Status Message – Set a custom status visible to friends

**Plugin Messaging API:**
The plugin provides a complete API for Spigot/Paper servers to interact with the friends system:

**Available Requests:**
– GET_FRIENDS – Retrieve all friends with names and online status
– GET_ONLINE_FRIENDS – Get only online friends
– GET_SETTINGS – Fetch a player’s settings and status message
– UPDATE_SETTING – Change player settings from backend servers
– GET_PENDING_REQUESTS – List all pending friend requests
– ARE_FRIENDS – Check if two players are friends

**Automatic Events:**
– FRIEND_ONLINE – Triggered when a friend comes online
– FRIEND_OFFLINE – Triggered when a friend goes offline
– FRIEND_SERVER_SWITCH – Notified when a friend switches servers (NEW in 1.2.0)
– FRIEND_REQUEST – Sent when receiving a new friend request
– SETTING_CHANGED – Notified when settings are updated

**Storage Options:**
Choose between JSON files or MySQL database:

JSON Mode (Default):
– Simple file-based storage
– No external dependencies
– Perfect for smaller networks

MySQL Mode:
– Scalable database storage
– HikariCP connection pooling
– Ideal for larger networks
– Tables: friendships, pending_requests, player_settings, player_names

**Features:**
– Cross-server friend system for Velocity networks
– Live version checker – Stay updated with automatic version notifications
– Activity status system – Active, AFK, and DND modes with visual indicators
– Server display – See which server each friend is on
– Click-to-join – Instantly join your friends by clicking their server
– Offline support – Accept friend requests from offline players
– Server switch tracking with clickable notifications
– Private messaging between friends
– Broadcast messages to all online friends
– Customizable settings per player
– Offline player name display
– Console logging for moderation
– MySQL support with connection pooling
– JSON fallback for simplicity
– Plugin Messaging API for custom integrations
– Automatic username caching
– Interactive settings menu
– Configurable notifications (join/leave/server switch)
– Flexible message customization with auto-disable for empty entries

**PlaceholderAPI Support (New!):**

Use the included companion plugin to display friend data in scoreboards, holograms, chat, and more:

**Available Placeholders:**
– %friends_online% # Number of online friends
– %friends_total% # Total number of friends
– %friends_offline% # Number of offline friends
– %friends_online_list% # Comma-separated online friends
– %friends_online_servers% # Unique servers count

**Supported Velocity Version:**
Velocity 3.3.0 and higher (Java 17+)

**Important when setting up:**
1. Choose your storage type in `config.yml` (json or mysql)
2. If using MySQL, configure database credentials
3. Restart the proxy server
4. Optionally integrate with Spigot/Paper plugins using the Plugin Messaging API

Just send me a message on [Discord](https://discord.com/invite/vVrpvBEfeQ) if you have any questions, suggestions, or requests for new plugins.

Velocity Discord

# Discord-Velocity
This plugin sends messages to a Discord channel when the proxy starts/stops and when players join/leave.

**Configuration**
– Place the bot token and channel id in `plugins/DiscordVelocity/config.yml` (the plugin will create a default file on first run).
– You can customize messages in the same file. Supported placeholders:
– `{player}` – the player’s username (underscores are escaped to avoid unintended italics)
– `{velocity_online}` – number of players currently connected to the proxy

Messages are YAML strings and may include Discord emoji and markdown like `**bold**` — player underscores are escaped but emoji and bold remain functional.

### **Notes**
– Requires Java 17 and a Velocity 3.4.0-SNAPSHOT compatible proxy.

Velocity-CommandLimiter

# What Is This
Powerful Plugin that manipulates all commands under proxy or proxies to control display and execution!
limit and disable command!

# How To Use
### Before Installation
Basically, it is recommended to use with permission management plug-ins such as LuckPerms.

## How To Setup
Put the downloaded plugin into the Velocity plugin folder and run it once.

Then the default config will be generated.

### Config

The settings described in `[[permissions]]` in config will be applied to players who have the permissions described in `[[permissions]]`.

If a player has multiple permissions due to group inheritance in LuckPerms, etc., all settings will be activated, so the settings with the most restrictions will be given priority.

For example, if `default` is set to `commands = [“help”, “list”]` and `guest` inherits the default permissions, then even if `guest` is set to `commands = [“list”]`, `help `is not available!

“`toml
# Permission to view and execute all commands `commandlimiter.admin` for the following
allAllowed = “admin”
# Restrict the display and execution of all commands by players who do not have any privileges, or
limitNoPermissionsPlayer = true

# Configuration of commands available for each permission node
[[permissions]]
# Value of permission node `commandlimiter.default` for the following
nodeName = “default”
# Enable whitelist or not?
# If false, it will be in blacklist format
whiteList = true
# For whitelist, only the commands described below can be displayed and executed
# If blacklisted, only the commands described below will be restricted
# Commands containing subcommands can be filtered by wildcards or regular expressions
commands = [“help”, “list”, “me*”, “msg*”, “teammsg*”, “tell*”, “tm*”, “trigger*”, “w*”, “random*”]
“`

### Permission Node
The root of the permission node for this plugin is `commandlimiter`.

If you want to set it up with LuckPerms etc., you need to set it up as follows

> Example of LuckPerms settings saved in yaml
“`yaml
name: default
permissions:
– commandlimiter.default:
value: true
“`

## Command
The following commands are available

| Command |Alias | Description | Required Permission Nodes |
|—————————|————-|————————————————-|———————–|
| `/commandlimiter-reload` | `/cl-reload` | Reload the plugin config to reflect the settings | `commandlimiter.admin`|

> ⚠️Attention⚠️

Even if you reload the configuration with the command, the client will display the commands as they were before they were configured** until you reconnect to the server.

This is due to the fact that the client gets the commands that are available when connecting to the server.

# Support SNS
SNSList: [https://kuwa.dev/](https://kuwa.dev/)

Twitter(x): [https://x.com/kuwamain](https://x.com/kuwamain)

Discord Support Server: [https://kuwa.app/discord/support](https://kuwa.app/discord/support)

> Japanese
# What Is This
プロキシやプロキシ下にある全てのコマンドを操作して表示と実行を制御する強力なPlugin

# How To Use
### 導入前に
基本的にはLuckPerms等の権限管理プラグインと利用することをお勧めいたします

## 設定方法
ダウンロードしたプラグイン本体を、Velocityのプラグインフォルダに入れ、一度起動します

そうすることでデフォルトのconfigが生成されます

### Configの説明

config内の`[[permissions]]`に記述した権限を持つプレイヤーに記述した設定が反映されるようになります

LuckPermsのグループ継承等で複数の権限を持つプレイヤーの場合、すべての設定が有効化されるため、制限が多い設定が優先されます

例を言うと、`default`に`commands = [“help”, “list”]`が設定されていて、`guest`がデフォルトの権限を継承するようになっている場合、たとえ`guest`が`commands = [“list”]`のように設定されていても`help`を利用することはできません

“`toml
# 全てのコマンドの表示と実行を許可する権限 以下の場合`commandlimiter.admin`
allAllowed = “admin”
# 権限を何も持っていないプレイヤーのすべてのコマンドの表示と実行を制限するか
limitNoPermissionsPlayer = true

# 各 permission node で利用できるコマンドの設定
[[permissions]]
# permission node の値 以下の場合`commandlimiter.default`
nodeName = “default”
# ホワイトリストを有効にするか
# falseの場合はブラックリスト形式になる
whiteList = true
# ホワイトリストの場合は、以下に記述したコマンドのみ表示と実行が可能になる
# ブラックリストの場合は記述したコマンドのみ制限される~~~~
# サブコマンドを含むコマンドの場合、ワイルドカードや正規表現でフィルタ可能
commands = [“help”, “list”, “me*”, “msg*”, “teammsg*”, “tell*”, “tm*”, “trigger*”, “w*”, “random*”]
“`

### Permission Node
このプラグインの permission node の root は `commandlimiter` になっています

LuckPerms等で設定する場合は以下のように設定する必要があります

> LuckPermsの設定をyamlで保存するようにしている場合の例
“`yaml
name: default
permissions:
– commandlimiter.default:
value: true
“`

## Command
以下のコマンドが利用可能なコマンドです

| コマンド |エイリアス | 説明 | 必要なPermissionノード |
|—————————|————-|————————————————-|———————–|
| `/commandlimiter-reload` | `/cl-reload` | プラグインのconfigを再読み込みして設定を反映します | `commandlimiter.admin`|

> ⚠️注意⚠️

コマンドで設定を再読み込みしたとしても、コマンドの表示に関しては**サーバーに再接続するまでクライアントでは設定前の表示**になります

これはクライアントがサーバー接続時に利用できるコマンドを取得する仕様のためです

Velocity Carbon Discord

# Velocity Carbon Discord
Bridging [Carbon](https://modrinth.com/plugin/carbon) chat channels to Discord.

Carbon must be installed on the proxy to use this plugin. If you use Carbon on your backend servers, please use their DiscordSRV compatibility.

## Features
– Highly configurable
– Webhooks or bot messages for chat
– Display player count in bot status
– Ping discord users from in-game
– Reply to in-game messages from Discord
– Handle separate chat channel mappings (E.g. one channel for global chat, one channel for staff chat)
– Customisable Minecraft Avatar display
– Link discord attachments in-game
– Status messages on server start and shutdown, as well as player join, leave or change server
– Formats Xaero’s Minimap shared waypoints in Discord

## Installation
1. Create a discord bot application [here](https://discordapp.com/developers/applications/)
– Click `Add application` and then go to the `Bot` tab
2. Enable the `SERVER MEMBERS INTENT` and `MESSAGE CONTENT INTENT` under `Privileged Gateway Intents`
3. Go to the `OAuth2` tab and copy the `CLIENT ID`
4. Create an invite link for your new bot [here](https://discordapi.com/permissions.html)
– Enable permissions: `View Channels`, `Send Messages` and `Read Message History`
– Paste the copied `CLIENT ID` into the field on the page
– Click the generated link to invite your bot to your discord server
3. Go to the `Bot` tab and copy the bot token, you may need to click `Reset Token` first
4. Install the plugin on your server, start the server once to generate the config and stop the server again.
5. Open the plugin config files at `plugins/velocitycarbondiscord/config.yaml`
6. Replace where it says `TOKEN` with the bot token you copied previously
7. Edit the channel mapping to include the carbon channels and discord channels IDs you want to link
8. Set any additional config options you want
9. Start the server

## Support

Support for Carbon and Velocity Carbon Discord can be obtained in the [Carbon discord server](https://discord.gg/S8s75Yf). For Velocity Carbon Discord issues, please ping `@Jarva`

## Configuration
Default config generated on startup:
“`yaml
discord:
token: ‘TOKEN’
# Available placeholders:
messages:
# Additional placeholders:
chat_message: ‘:
# Additional placeholders:
join_message: ‘** joined **’
leave_message: ‘** left **’
# Additional placeholders: N/A
disconnect_message: ‘** was disconnected**’
# Additional placeholders:
disconnect_server_message: ‘** was disconnected from **’
# Additional placeholders:
server_switch_message: ‘** moved from to **’
# Available placeholders: N/A
shutdown_message: ‘**Proxy shutting down**’
start_message: ‘**Ready for connections**’
# Additional placeholders: <description><br /> advancement_default_message: “**<username>** has just earned the achievement [<title>]** _(<description>)_”<br /> advancement_challenge_message: “**<username>** has completed the challenge [<title>]** _(<description>)_”<br /> advancement_goal_message: “**<username>** has reached the goal [<title>]** _(<description>)_”<br /> advancement_task_message: “**<username>** has made the advancement [<title>]** _(<description>)_”<br /> # Additional placeholders: <displayname> <message><br /> death_message: “**<message>**”<br /> webhook:<br /> # Available placeholders: <displayname> <username> <uuid><br /> avatar_url: ‘https://crafatar.com/renders/head/<uuid>?overlay’<br /> username: ‘<username>‘<br /> # Available placeholders: <message><br /> message: ‘<message>‘<br /> show_bot_messages: false<br /> show_attachments_ingame: true<br /> show_activity: true<br /> # Available placeholders: <amount><br /> activity_text: ‘with <amount> players online’<br /> enable_mentions: true<br /> enable_everyone_and_here: false<br /> prefer_webhook: true<br /> # Available placeholders: <message> <nickname> <role_color> <username><br /> minecraft:<br /> # Additional placeholders: <attachments> <discord_format> <reply_format> <username_format><br /> format: ‘<discord_format> <reply_format><username_format> <dark_gray>» <reset><message><attachments>‘<br /> discord_format: ‘<dark_gray>(<color:#7289da>discord<dark_gray>)<reset>‘<br /> username_format: ‘<color:<role_color>><hover:show_text:<username>><nickname></hover><reset>‘<br /> mention_format: ‘<color:<role_color>><underlined>@<nickname></underlined></color>‘<br /> # Additional placeholders: <reply_message> <reply_nickname> <reply_role_color> <reply_url> <reply_username><br /> reply_format: ‘<dark_gray><click:open_url:<reply_url>>[<color:#4abdff>←<color:<reply_role_color>><hover:show_text:<reply_username>><reply_nickname></hover><dark_gray>]</click><reset> ‘<br /> # Additional placeholders: <attachment_url><br /> attachment_format: ‘<dark_gray><click:open_url:<attachment_url>>[<color:#4abdff>Attachment<dark_gray>]</click><reset>‘<br /> channels:<br /> – name: ‘carbon:global’<br /> enabled: true<br /> broadcast_events: true<br /> discord:<br /> webhook:<br /> url: ‘WEBHOOK_URL’<br /> channel_id: ‘CHANNEL_ID’<br /> – name: ‘carbon:staff’<br /> enabled: true<br /> minecraft:<br /> format: ‘<discord_format> <gray>✦</gray> <username_format> <dark_gray>» <aqua><message><attachments>‘<br /> discord:<br /> webhook:<br /> url: ‘WEBHOOK_URL’<br /> channel_id: ‘CHANNEL_ID’<br /> “`</p> <p>## Credits<br /> – fooooooooooooooo: Creation of [Velocity Discord](https://modrinth.com/plugin/velocitydiscord/) which heavily inspired the features, and this README<br /> – Draycia: Creator of [Carbon](https://modrinth.com/plugin/carbon), as well as provided lots of help figuring out implementation details</p> </article> <article> <h1>Velocity Broadcast Reborn</h1> <p>## VelocityBroadcast Reborn<br /> The new and improved version of my old popular plugin called “Velocity Broadcast”. The best known and lightweight broadcasting plugin for any network to use. </p> <p># Introduction<br /> Welcome to the GitHub repo and source code for the plugin VelocityBroadcast Reborn. This is a complete rewrite of my previous VelocityBroadcast plugin. I reworked and rebuilt the plugin from scratch. Due to the fact a ton of promised features sadly did not work out correctly. The biggest complaint being permissions. Well, I did it. I was able to fix a few old grievances and even add some new features. So without further ado, the information regarding VelocityBroadcast Reborn! </p> <p>VelocityBroadcast Reborn is a unique and lightweight plugin that allows people with specific permission nodes/groups with permission nodes assigned to LuckPerms for Velocity to broadcast a message across the entire network. This is useful for events, maintenance announcements, and more. I do plan to add more features one day, but for now this is what we have. Light, simple, and easy to use. Please use the Issue Tracker above to report any issues or feedback about the plugin. </p> <p># Dependencies<br /> – The latest stable build of Velocity<br /> – A main hub/lobby server (Preferably running Paper, but it should work on any type of server. Including modded)<br /> – A secondary/multiple servers on the network to receive full compatibility </p> <p># Setup<br /> 1. Download the latest version from Spigot or the Releases page on the right<br /> 2. Upload the plugin file to your ***Proxy’s*** plugin folder (Do not upload it to the hub server’s plugin folder)<br /> 3. Restart the proxy<br /> 4. In the console of your proxy server, run the following command(s) depending on your preferred usage. (4a for users specifically, 4b for groups)<br /> 4a. lpv user {username} permission set {permission node} true {context (optional)}<br /> 4b. lpv group {group} permission set {permission node} true {context (optional)}<br /> 4c. Or you can do it in GUI mode with the command “lpv editor”<br /> 5. Restart your proxy again<br /> 6. Now the setup is complete, enjoy! </p> <p># Commands and Permissions<br /> – /vb – When typed on its own will show the help page – No permission needed<br /> – /vb {message} – When typed and paired with a message, it will send a message across all servers on a network (Legacy Color Codes and MiniMessage compatible) – vb.broadcast<br /> – /vp prefix {new prefix} – This allows whoever has the required permission to change the prefix in front of the message broadcasted – vb.admin<br /> – /vb reload – Allows people with the correct permission node to reload the config if it was edited manually – vb.admin </p> <p>***Currently due to the limitations of Velocity, you can not run the commands while being opped. You MUST have the correct permission nodes for it to work.***</p> </article> <article> <h1>Velocity Auto Start</h1> <p># Velocity Auto Start:</p> <p>**AutoStart is a Velocity proxy plugin that starts your backend Minecraft<br /> server on demand and shuts it down automatically when nobody’s online — saving resources without keeping the server running 24/7.**<br /> ## How it works:<br /> When a player tries to connect through the proxy and the backend is offline, the plugin automatically fires a configurable start command (e.g. a screen + shell script), kicks the player with a friendly “starting up” message, and updates the server list MOTD to show a “STARTING… PLEASE WAIT” status. Once the server is up, players can join normally. When the last player leaves, a configurable idle timer (default: 20 minutes) counts down and gracefully stops the server.<br /> ## Features:</p> <p>⚡ On-demand startup — backend server starts the moment a player tries to connect<br /> 💤 Idle shutdown — automatically stops the server after a configurable period of inactivity<br /> 📋 Dynamic MOTD — shows different status messages depending on server state (offline, starting, online)<br /> 🔧 Fully configurable — backend host/port, start/stop commands, idle timeout, and all messages are set via config.toml<br /> 💬 MiniMessage support — MOTD and kick messages use the MiniMessage format for rich formatting</p> <p>## Requirements:</p> <p>Velocity proxy</p> </article> <article> <h1>Velocity – Auto Reconnect</h1> <p>VelocityReconnect keeps players online while a backend server restarts and reconnects them automatically when it comes back.</p> <p>Instead of kicking players out during a restart, VelocityReconnect keeps retrying in the background and can hold players inside the proxy while they wait. This makes restarts, crashes, and maintenance feel much smoother for players.</p> <p>By default, VelocityReconnect uses its built-in no-limbo mode, so no extra backend or limbo server is required. If you prefer, it can also work with a real holding server.</p> <p>Features:</p> <p>Native Velocity reconnect handling<br /> No limbo server required<br /> Built-in no-limbo mode enabled by default<br /> Optional support for a real holding server<br /> Automatic reconnect attempts while the backend is offline<br /> Custom reconnect titles, subtitles, and actionbar messages<br /> Animation support in reconnect messages<br /> Configurable reconnect timing and retry behavior<br /> Fallback server support<br /> Per-server permission support<br /> Simple Voice Chat compatibility for built-in holding mode<br /> Setup:</p> <p>1. Drop the plugin into your proxy’s plugins folder.<br /> 2. Restart your Velocity proxy.<br /> 3. Open the config and set the reconnect timing to match how long your server usually takes to start.<br /> 4. Check that the shutdown text or regex matches the message your backend sends when it restarts.<br /> 5. If needed, edit the config and reload the plugin.<br /> Test it and enjoy.</p> <p>Credits:<br /> VelocityReconnect is based on and ported from tau’s BungeeReconnect, with additional Velocity-specific changes and built-in proxy holding support for single-backend setups.</p> <p>![Bstats](https://bstats.org/signatures/velocity/Velocity%20-%20Auto%20Reconnect.svg)</p> </article> <article> <h1>Velocity Alert</h1> <p>![Modrinth Downloads](https://img.shields.io/modrinth/dt/velocity-alert?label=Modrinth%20Downloads&logo=modrinth&color=brightgreen)<br /> ![GitHub Downloads](https://img.shields.io/github/downloads/Anwenden001/Velocity-Alert-Plugin/total?label=GitHub%20Downloads&logo=github&color=blue)<br /> # Velocity Alert Plugin<br /> ## Overview<br /> A simple Velocity plugin that alerts/announces players in your entire server network. You can use this feature to warn players about an upcoming server/proxy restart, or announce any other important message you want to mention.</p> <p>## Features<br /> * `/alert (message)`<br /> * Permission node is `alert.command.permission` (recommended for staff only; you can setup the permissions in your permission plugin)<br /> * Colored messages with HEX color support<br /> * Config file where you can customise the alert message prefixes and colors.</p> <p>### Supported Formats<br /> A list of supported formats with links on how to use them.<br /> – [Legacy](https://www.digminecraft.com/lists/color_list_pc.php)<br /> – [JSON](https://minecraft.wiki/w/Raw_JSON_text_format)<br /> – [XML (MiniMessages)](https://docs.advntr.dev/minimessage/format.html#minimessage-format)</p> <p>### Format Examples<br /> Here are some basic examples of those 3 different formats: (<span style="color:red">[ALERT] Warning!</span>)<br /> – Legacy: `/alertlegacy &cWarning!`<br /> – JSON: `/alertjson {“text”:”Warning!”,”color”:”red”}`<br /> – XML (MiniMessage): `/alertxml <red>Warning!`</p> <p>Or you can use `/alert` by changing the format in the config file. The defaults format is lagacy.</p> <p>## Installation and Setup<br /> 1. Download the latest Alert plugin [here](https://modrinth.com/plugin/velocity-alert/version/1.8).<br /> 2. Place the plugin in the plugins folder of your proxy server.<br /> 3. Restart your proxy and that’s it! The plugin should be loaded.</p> <hr> <p>If you have any questions or have found a problem, please report it to [https://github.com/Anwenden001/Velocity-Alert-Plugin/issues](https://github.com/Anwenden001/Velocity-Alert-Plugin/issues)</p> </article> <article> <h1>Velocitab</h1> <p><center><br /> <img decoding="async" src="https://thread-assets.william278.net/velocitab_header.png" /><br /> <b><a href="https://github.com/WiIIiam278/Velocitab">GitHub</a></b> — <b><a href="https://william278.net/docs/velocitab/setup">Setup</a></b> — <b><a href="https://discord.com/invite/tVYhJfyDWG">Discord</a></b> — <b><a href="https://william278.net/docs/velocitab">Docs</a></b><br /> </center><br /> ​</p> <p>**Velocitab** is a super-simple Velocity TAB menu plugin that uses scoreboard team client-bound packets to actually sort player lists without the need for a backend plugin. Supporting modern RGB formatting, animations, comprehensive placeholder support and defining multiple TAB menus for different groups of servers, Velocitab is a versatile plugin, useful for any Velocity-based proxy network.</p> <p><center><img decoding="async" src="https://raw.githubusercontent.com/WiIIiam278/Velocitab/master/images/showcase.png" alt="Showcase of different TAB menus made with Velocitab" /></center></p> <p><center><br /> <img decoding="async" src="https://thread-assets.william278.net/features_heading.png" alt="Features" /><br /> </center></p> <p>### **⭐ Flexible list sorting**<br /> Customizable TAB [list sorting](https://william278.net/docs/velocitab/sorting) based on user role, server, placeholder, and more.</p> <p>### **⭐ Versatile formatting support**<br /> Make your TAB list beautiful with full RGB color support, supporting MiniMessage, MineDown and legacy [formatting modes](https://william278.net/docs/velocitab/formatting).</p> <p>### **⭐ Multiple TAB menus for different servers**<br /> Create [server groups](https://william278.net/docs/velocitab/server-groups) and configure different TAB lists to show for each group!</p> <p>### **⭐ Animations support**<br /> Add extra flair to your TAB list or display additional information by creating pretty looking [animations](https://william278.net/docs/velocitab/animations).</p> <p>### **⭐ Player nametags**<br /> Customize how over-the-head [nametags](https://william278.net/docs/velocitab/nametags) look to help players stand out in-game.</p> <p>### **⭐ Full placeholder support**<br /> Comes with a robust set of built-in [placeholders](https://william278.net/docs/velocitab/placeholders), MiniPlaceholders support, as well as PAPIProxyBridge for PlaceholderAPI support</p> <p>**Ready?** [Get started in a new TAB…](https://william278.net/docs/velocitab/setup)</p> <p><center><br /> <img decoding="async" src="https://thread-assets.william278.net/requirements_heading.png" alt="Requirements" /><br /> </center></p> <p>* A Velocity 3.3.0 proxy running the latest version<br /> * Backend servers running MC 1.12.2 or newer, or MC 1.8-1.8.9<br /> * Java 17</p> <p><center><br /> <img decoding="async" src="https://thread-assets.william278.net/links_heading.png" alt="Links" /><br /> </center><br /> Helpful links to get you started:</p> <p>* **[Website](https://william278.net/project/velocitab)** — Visit my website!​<br /> * **[Docs](https://william278.net/docs/velocitab)** — Read the plugin docs!<br /> * **[Discord](https://discord.com/invite/tVYhJfyDWG)** — Get support, ask questions!​<br /> * **[bStats](https://bstats.org/plugin/velocity/Velocitab/18247)** — Check out the plugin metrics!​<br /> * **[GitHub](https://github.com/WiIIiam278/Velocitab)** — Check out the plugin source code!​<br /> * **[Setup](https://william278.net/docs/setup)** — Read the setup instructions!​</p> <p><center><img decoding="async" src="https://user-images.githubusercontent.com/31187453/232607366-35d530dc-fb2a-419b-a345-3cc758baa6df.gif" alt="Example of animations in a TAB list menu" /></center></p> </article> <article> <h1>velocit</h1> <p># velocit<br /> A [playit.gg](https://playit.gg) plugin for [Velocity](https://github.com/PaperMC/Velocity) servers</p> <p># Getting Started</p> <p>1. [Setup a Velocity Server](https://docs.papermc.io/velocity/getting-started)<br /> 2. Install the plugin’s [latest release](https://github.com/200Tigersbloxed/velocit/releases/latest)<br /> 3. Click the link in the console window to link your playit account to the server<br /> 4. Done!</p> <p># What’s supported?</p> <p>Pretty much anything that’s TCP will work right now.</p> <p>Feature | Description | Supported<br /> — | — | —<br /> Minecraft TCP | The TCP port for Velocity | ✔️<br /> UDP Ports | UDP Ports (for things like Geyser) | ❌<br /> Extra TCP Ports | Any extra TCP ports to expose | ✔️<br /> IP Forwarding | The actual IP address of the client | ❌</p> <p>*any feature listed is planned*</p> <p># How to Build?</p> <p>1. Pull the repo<br /> 2. Open with your favorite Java IDE<br /> 3. Refresh maven packages<br /> 4. `mvn install`</p> </article> </main> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/minecraft/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <div class="gtranslate_wrapper" id="gt-wrapper-27272033"></div><script id="gt_widget_script_27272033-js-before"> window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['27272033'] = {"default_language":"en","languages":["ar","az","bn","bg","hr","cs","da","nl","en","fi","fr","de","el","hu","id","it","ja","kk","ko","fa","pl","pt","ro","ru","sl","es","sv","th","uk","uz","vi"],"url_structure":"sub_directory","flag_style":"2d","wrapper_selector":"#gt-wrapper-27272033","alt_flags":[],"custom_domains":{"ru":"minecraft.vpesports.games"},"float_switcher_open_direction":"top","switcher_horizontal_position":"left","switcher_vertical_position":"bottom","flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"}; //# sourceURL=gt_widget_script_27272033-js-before </script><script src="https://minecraft.vpesports.com/wp-content/plugins/gtranslate/js/float.js?ver=3.1.1" data-no-optimize="1" data-no-minify="1" data-gt-orig-url="/mod-category/velocity/page/11/" data-gt-orig-domain="minecraft.vpesports.com" data-gt-widget-id="27272033" defer></script><script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://minecraft.vpesports.com/wp-includes/js/wp-emoji-release.min.js?ver=7.0"}} </script> <script type="module"> /*! This file is auto-generated */ const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))}); //# sourceURL=https://minecraft.vpesports.com/wp-includes/js/wp-emoji-loader.min.js </script> </body> </html>