VelocityPlus

VelocityPlayerListQuery

# VelocityPlayerListQuery

A Velocity plugin that shows current players in the server list.

Inspired by .

## Configuration options

| option | default | description |
| ————————– | ————- | —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————– |
| `playerListMode` | `”REPLACE”` | Configure how players are shown in the player list.

|
| `serverListEntryFormat` | `”%1$s”` | Configure how players are shown in the server list.

|
| `maxListEntries` | `16` | Configure how many players are shown in the server list. `<= 0` for unlimited (for backwards compatibility). | | `replaceOnlinePlayerCount` | `false` | Should the online player count be replaced with the number of players currently connected to Velocity? Useful when using `ping-passthrough = "all"`. | | `replaceMaxPlayerCount` | `false` | Should the maximum player count be replaced with the Velocity configured amount? Useful when using `ping-passthrough = "all"`. | | `fillMissingVersionInfo` | `false` | Should the version information be replaced with what is set in `versionProtocol` and `versionName`, when no version is detected? Useful when the backend server/s is/are unavailable or still starting. |
| `replaceVersionInfo` | `false` | Should the version information always be replaced with what is set in `versionProtocol` and `versionName`? Extends `fillMissingVersionInfo`. Useful when using `ping-passthrough = “all”`. |
| `versionProtocol` | `4` (= 1.7.2) | The protocol number to be set. You can find all available protocol versions at . Used by `fillMissingVersionInfo` and `replaceVersionInfo`. |
| `versionName` | `”Velocity”` | The version name to be set. Used by `fillMissingVersionInfo` and `replaceVersionInfo`. |

Velocity Parties

# Velocity Parties
**VelocityParties** is a powerful and fully customizable party system built for the Velocity Minecraft proxy. It allows players to create, manage, and communicate with parties seamlessly across your entire network.

> ⚠️ **IMPORTANT REQUIREMENT**
> If you want the **party chat toggle system (`/party toggle`) and mute system (`/party mute`) to work correctly**, you **MUST install the VelocityPartiesBridge plugin on all backend servers** (Spigot, Paper, Purpur, etc).
> Without the bridge plugin, toggle-based party chat along with mutes will NOT function properly.

> **You can download the Bridge plugin through the download button above, but select Paper/Spigot/Bukkit/Purpur as the server type.**

## Benefits of VelocityParties ✅
– Cross-server party system (Velocity-native)
– Auto leaving party after leaving the network (if they don’t rejoin after X amount of seconds defined in the config)
– Party chat with toggle support (`/party toggle`)
– Fully customizable (messages, formatting, filters, etc)
– Invite and request system
– Ability to promote, kick, mute, and ban players within a party
– Support for both online and offline player management
– Party warp system to bring members across servers
– Database-backed party storage
– Configurable chat filtering system
– Clean and intuitive command structure
– Designed specifically for scalable proxy networks

## Permissions ⚠
**`parties.use`** = should be given to **all players**

**`parties.admin`** = should be given to **admins/developers**

## Commands 🔨

| Command | Aliases | Description |
|——–|——–|————|
| `/party create` | — | Create a new party |
| `/party invite ` | `add` | Invite a player to your party |
| `/party accept` | `join` | Accept a party invite |
| `/party decline` | — | Decline a party invite |
| `/party leave` | `quit` | Leave your party |
| `/party disband` | — | Disband your party |
| `/party kick ` | `remove` | Kick a player from your party |
| `/party promote ` | — | Promote a player to leader |
| `/party mute [player]` | `silence` | Mute the whole party or a specific player |
| `/party unmute [player]` | `unsilence` | Unmute the party or a player |
| `/party ban ` | `block` | Ban a player from the party |
| `/party unban ` | `unblock` | Unban a player |
| `/party chat ` | `message` | Send a message to party chat |
| `/party toggle` | — | Toggle party chat |
| `/party warp` | `teleport` | Warp party members to your server |
| `/party list` | `members` | View party members |
| `/party kickoffline` | `removeoffline` | Removes all offline members from the party |

## Configuration ⚙

VelocityParties comes with multiple configuration files:

– `config.yml` – main plugin settings
– `messages.yml` – fully customizable messages
– `filter.yml` – chat filtering configuration
– `toggled.yml` – stores player toggle states

## Requirements 🔌

– Velocity proxy
– Java 17+
– **VelocityPartiesBridge (required for toggle chat support)**

## Why VelocityParties? 🚀

Unlike traditional party plugins, VelocityParties is built specifically for proxy environments, ensuring:

– Reliable cross-server communication
– Consistent party state across all servers
– High performance for large networks

## Contact
For suggestions, bug reports, or general help; https://discord.gg/v5hU7kBp2S

VelocityPacker

# Velocitypacker

[![Kotlin](https://img.shields.io/badge/Kotlin-2.0.20–Beta1-blue.svg)](https://kotlinlang.org)
[![Velocity](https://img.shields.io/badge/Velocity-3.4.0–SNAPSHOT-blue.svg)](https://velocitypowered.com)
[![SQLite](https://img.shields.io/badge/SQLite-3.45.0.0-yellow.svg)](https://sqlite.org)

A Velocity plugin that automatically sends resource packs to players and stores their acceptance status in a SQLite database.

## ✨ Features

– 🔄 **Automatic Resource Pack Sending** – Pack is sent on every proxy join
– 📊 **SQLite Database** – Persistent storage of acceptance status
– 🚫 **Smart Blocking** – Players cannot connect to servers until pack is accepted/declined
– ⚡ **Auto-Connect** – Automatic connection to first server after successful acceptance
– 🔒 **Session Management** – No re-sending when switching between backend servers
– 🎛️ **YAML Configuration** – Easy customization of all settings
– 📋 **Detailed Logs** – Comprehensive information about pack status

## 🚀 Installation

### 1. Download Plugin
“`bash
# Clone repository
git clone https://github.com/TheLion102009/Velocitypacker.git
cd Velocitypacker

# Build plugin
./gradlew clean shadowJar
“`

### 2. Install JAR
You can find the compiled JAR in `build/libs/Velocitypacker-0.1.jar`.

Copy this file to the `plugins/` folder of your Velocity server.

### 3. Start Server
Restart your Velocity server. The configuration file will be created automatically.

## ⚙️ Configuration

The `config.yml` is automatically created in the `plugins/velocitypacker/` folder:

“`yaml
# Resource pack URL (REQUIRED)
# Must be a direct download URL to a .zip file
resourcePackUrl: https://example.com/resourcepack.zip

# SHA-1 hash of the resource pack (OPTIONAL)
# Format: 40 hexadecimal characters (e.g. a1b2c3d4e5f6…)
# Leave empty if you don’t want to use a hash
resourcePackSha1: “”

# Message shown to the player
# Supports Minecraft color codes with §
resourcePackPrompt: “§aPlease accept the resource pack to play!”

# Kick player if the resource pack is declined
kickOnDecline: true

# Kick player if the download fails
kickOnFailedDownload: true

# Kick message (supports color codes with §)
kickMessage: “§cYou must accept the resource pack to play!”
“`

### Generate SHA-1 Hash

**Windows:**
“`powershell
certutil -hashfile resourcepack.zip SHA1
“`

**Linux/Mac:**
“`bash
sha1sum resourcepack.zip
“`

## 🔧 How It Works

### Player Join Process:
1. **Player connects to proxy** → Resource pack is sent immediately
2. **Server connection blocked** → Player stays in resource pack screen
3. **Pack accepted** → Automatic connection to first available server
4. **Pack declined** → Player is kicked (if configured)

### Server Switch Process:
– **Backend server switch** → No re-sending (stored in session)
– **Proxy rejoin** → Pack is sent again (new session)

### Database:
– **Location**: `plugins/velocitypacker/resourcepack.db`
– **Stored data**: UUID, acceptance status, timestamp

## 📋 Logs

The plugin provides detailed logs:

“`
[INFO] Initializing Velocitypacker…
[INFO] Configuration loaded
[INFO] Database initialized
[INFO] Event listener registered
[INFO] Sent resource pack to player Spieler123
[INFO] Player Spieler123 successfully downloaded the resource pack
[INFO] Connecting Spieler123 to lobby
“`

## 🛠️ Technical Details

– **Velocity API**: 3.4.0-SNAPSHOT
– **Kotlin**: 2.0.20-Beta1
– **SQLite**: 3.45.0.0
– **SnakeYAML**: 2.2
– **Shadow Plugin**: For dependency bundling

## 🏗️ Build

“`bash
# Full build with all dependencies
./gradlew clean shadowJar

# Compile only (without Shadow)
./gradlew build
“`

The final JAR is approximately **16 MB** in size and contains all necessary dependencies.

## 📝 Important Notes

– **Resource Pack URL**: Must be a direct `.zip` download URL
– **No Server Switch Blocks**: Players can freely switch between backend servers
– **Session Cleanup**: Data is automatically cleaned up on disconnect
– **Database Backup**: SQLite file can be easily copied/backed up

## 🐛 Troubleshooting

### Plugin doesn’t load
– Make sure Velocity 3.4.0-SNAPSHOT is running
– Check if all dependencies are correctly bundled

### Resource pack is not sent
– Check the `resourcePackUrl` in the configuration
– Make sure the URL is accessible

### Players are not forwarded
– Check the server logs for errors
– Make sure backend servers are available

## 📜 License

Created by **thelion**

## 🤝 Support

For questions or problems:
– Create an issue in the GitHub repository
– Check the logs for error messages
– Make sure all dependencies are correctly installed

**Good luck with your Velocitypacker plugin! 🎮**

VelocityNavigator

![VelocityNavigator Banner](https://raw.githubusercontent.com/sdemonzdevelopment-spec/VelocityNavigator/main/assets/hero-banner.png)

**VelocityNavigator** is a production-grade Velocity proxy plugin that introduces absolute traffic control over your network through intelligent initial-join load balancing and a highly context-aware `/lobby` system.

No more funneling all new players into a single hub. No more sending players to offline servers. No more guessing which lobby they ended up on.

![Routing](https://raw.githubusercontent.com/sdemonzdevelopment-spec/VelocityNavigator/main/assets/feature-routing.png)

## Why VelocityNavigator?

### For Players
– `/lobby` just works — fast, reliable, with clear feedback messages.
– Always routes to a healthy, reachable server.
– Automatically places them into the best lobby immediately upon joining the network before they even finish authentication.

### For Admins
– **Initial Join Balancing** — Bypasses Velocity’s default static fallback engine to perfectly split initial proxy connection waves.
– **Three routing algorithms** — `least_players`, `random`, `round_robin`
– **Contextual lobby groups** — different game servers can point to different lobby pools with automatic fallback loops
– **Real-time health checks** — async pings with configurable timeout, TTL caching, and ping coalescing to prevent backend storms
– **Anti-spam protection** — pre-execution cooldown locks block macro abuse before the routing engine even fires

## How Routing Works

“`
Player runs /lobby

Contextual group resolution (if enabled)

Fallback to default lobbies (if contextual group is empty/offline)

Cycle pruning (remove current server if alternatives exist)

Async health checks (with TTL cache + ping coalescing)

Selection strategy (least_players / random / round_robin)

Player is connected to the best available lobby
“`

*All server name matching is **case-insensitive** — `Lobby-1` and `lobby-1` are treated identically.*

## Commands & Diagnostics

| Command | Permission | Description |
|———|———–|————-|
| `/lobby` | `velocitynavigator.use` | Send to best available lobby |
| `/vn reload` | `velocitynavigator.admin` | Reload config live |
| `/vn status` | `velocitynavigator.admin` | Runtime status dashboard |
| `/vn version` | `velocitynavigator.admin` | Installed + latest version info |
| `/vn debug player ` | `velocitynavigator.admin` | Preview routing for a player |
| `/vn debug server ` | `velocitynavigator.admin` | Inspect server health snapshot |

## Quick Config Example

“`toml
config_version = 3

[commands]
primary = “lobby”
aliases = [“hub”, “spawn”]

[routing]
selection_mode = “least_players”
balance_initial_join = true
cycle_when_possible = true
default_lobbies = [“lobby-1”, “lobby-2”]

[routing.contextual]
enabled = true
fallback_to_default = true

[routing.contextual.groups]
bedwars = [“bw-lobby-1”, “bw-lobby-2”]

[routing.contextual.sources]
“bedwars-1” = “bedwars”

[health_checks]
enabled = true
timeout_ms = 2500
cache_seconds = 60
“`

## Compatibility

– **Platform:** Velocity only
– **Velocity:** `3.x`
– **Java:** `17+`

## 📖 Documentation & Links

– **GitHub Repository**: [View Source](https://github.com/sdemonzdevelopment-spec/VelocityNavigator)
– **Configuration Guide**: [Read Here](https://github.com/sdemonzdevelopment-spec/VelocityNavigator/wiki/Configuration-Guide)
– **Routing Algorithms**: [Read Here](https://github.com/sdemonzdevelopment-spec/VelocityNavigator/wiki/Routing-Algorithms)
– **Initial Join Balancing**: [Read Here](https://github.com/sdemonzdevelopment-spec/VelocityNavigator/wiki/Initial-Join-Balancing)

Looking for hosting? Check out https://nexeu.zip/ – budget-friendly hosting.
![nexeu-sponsor](https://whodoesntloveavatars.s3.fra.databucket.eu/assets/promo.png)

## 📊 Telemetry

[![bStats](https://bstats.org/signatures/velocity/Velocity%20Navigator.svg)](https://bstats.org/plugin/velocity/Velocity%20Navigator/28341)

VelocityNavigator Icon

Built with ❤️ by DemonZ Development

Premium Minecraft infrastructure, engineered for scale.

GateKeeper

# GateKeeper
A plugin adding a basic whitelist system to velocity, with a floodgate integration to add direct bedrock player support.
It stores the players in a simple SQLite database.


### Commands and Permissions:

`/vwhitelist` (aliases: `/velocitywhitelist`, `/gatekeeper`)
– `add ` : Adds a new player to the whitelist
– `remove ` : Removes the specified player from the whitelist
– `on` : Enables the whitelist
– `off` : Disables the whitelist
– ` list` : Lists all players currently on the whitelist
– `clear` : Clears the entire whitelist

Permissions are given based on the commands:

`whitelist`: base command node
– `whitelist.add` for the add-command
– `whitelist.clear` for the clear-command
– `whitelist.list` ||
– `whitelist.off` ||
– `whitelist.on` ||
– `whitelist.remove` ||

### config.yml

“`yaml
enabled: true # if the whitelist should be enabled or not. This will change with the use of `/whitelist on|off`.
prefix: “[Whitelist] ” # The prefix for every message except the disconnect reason.
cache:
enabled: true # if caching should be enabled
ttl-minutes: 5 # ttl (time to live) defining for how long the cache should be considered up-to-date
refresh-interval-minutes: 10 # interval in which to refresh the cache
messages:
disconnect-reason: | # the message shown to the player when he is not on the whitelist
You are not whitelisted on this server.
Please contact an administrator if you believe this is a mistake.
errors:
player-not-found: “Player ‘{0}’ not found.
already-whitelisted: “Player is already whitelisted.
not-whitelisted: “Player is not whitelisted.
incorrect-confirmation: “Incorrect confirmation number.”
whitelist-already-on: “Whitelist is already enabled.
whitelist-already-off: “Whitelist is already disabled.
usage:
add: “Usage: /whitelist add
remove: “Usage: /whitelist remove
whitelist: “Usage: /whitelist
info:
added-to-whitelist: “Added {0} to the whitelist.”
removed-from-whitelist: “Removed {0} from the whitelist.”
whitelist-on: “Whitelist has been enabled.”
whitelist-off: “Whitelist has been disabled.”
list: “Whitelisted players: {0}
list-empty: “The whitelist is currently empty.”
whitelist-clear: “Please type in /whitelist clear {0} in the next 15 seconds to confirm. Note that this action cannot be undone.”
whitelist-clear-confirmed: “Whitelist cleared successfully.”
“`

Velocity Friends

# Velocity Friends
**VelocityFriends** is a lightweight and fully customizable friends system built for the Velocity Minecraft proxy. It allows players to easily add, remove, and manage friends across your network using a suite of intuitive commands.

## Benefits of VelocityFriends ✅
– Fully customizable (colours, messages, command names, etc)
– Secure private messaging between friends
– Ability to add/remove friends
– Friend requests system
– Ability to hot-reload configs and commands.
– Ability to use placeholders inside of the chat messages (messages.yml config file), such as %player_name%
– Ability to see all friend requests you’ve been sent
– Ability to see all friends you’ve added and their online status (what server they’re playing on)
– Ability for staff members to use ‘/fspy’ to view player’s /fmsg’s for better network moderation
– Feature which sends a message to your friends telling them whether you’ve joined or left the network
– Integrates with **PremiumVanish** (if installed) so staff members can remain anonymous across your friends list too!

## Permissions ⚠
**`friends.use`** = should be given to **all players**

**`friends.reload`** = should be given to developers/admins who need access to “/friends reload” which reloads the commands and configs. **DO NOT GIVE TO ALL PLAYERS**

**`friends.spy`** = should be given to **staff members/moderators** who need access to “/fspy” which allows them to view players private /fmsg’s. **DO NOT GIVE TO ALL PLAYERS**

## Commands 🔨

### Message
_Message a friend that you have added._

**Usage:** /fmsg

### Reply
_Reply to the person who most recently messaged you._

**Usage:** /freply

### Spy
_Allows staff members to view all the players /fmsg’s. This command toggles the ability to do so._

**Usage:** /fspy

### Friends List
_View all the friends you’ve added. If that friend is online, it’ll also display which server they’re playing. Otherwise, will show they’re offline._

**Usage:** /friendslist

### Add/Request Friend Command
_Send a friend request to another player on the network._

**Usage:** /friends request

### Remove Friend Command
_Remove a player as a friend._

**Usage:** /friends remove

### Request Accept Command
_Accept a friend request that you have been sent._

**Usage:** /friends accept

### Request Decline Command
_Decline a friend request that you have been sent._

**Usage:** /friends decline

### Requests List Command
_View all the friend requests you have been sent._

**Usage:** /friendrequests

### Reload Command
_Reloads the configuration files, and also re-registers all the commands._

**Usage:** /friends reload

## Showcase
### Reload Command
![Reload Command](https://cdn.modrinth.com/data/cached_images/d19938cbdaea01cb2c36d97a53edefbcb7da030f.png)

### List of all subcommands under the ‘parent’ node
![List of all subcommands under the ‘parent’ node](https://cdn.modrinth.com/data/cached_images/14dfd9d28340639de61d27158624653be378c604_0.webp)

### Friend Requests (sent and received)
![Friend Requests – Sent](https://cdn.modrinth.com/data/cached_images/7618bfc30eb5f8625142a6e787445d232f2d85be.png)

![Friend Requests – Received](https://cdn.modrinth.com/data/cached_images/e86d217efac2be8f603aaeeb465af01a1920a692.png)

### Friends List
![Friends List Command – With Server Showcase](https://cdn.modrinth.com/data/cached_images/33629c82b3bcc63a14a32176ebed7003bb6cc264_0.webp)

### Friend Requests List
![Friends Requests List Command – With Date Received](https://cdn.modrinth.com/data/cached_images/72c82b5b587c610c76ad2d6eb56c21d8cf28798d.png)

### Message on Login
![Message sent when logging in (if enabled in config)](https://cdn.modrinth.com/data/cached_images/a4e64faf50223c8612a78c7b012126fc091c48a2.png)

## Contact
For suggestions, bug reports, or general help; join the discord:
[https://discord.gg/v5hU7kBp2S](https://discord.gg/v5hU7kBp2S)

VelocityFailover

# VelocityFailover

A lightweight Velocity proxy plugin that automatically handles server crashes and restarts — no player left behind.

## What does it do?

When a backend server goes down (crash, restart, `/stop`), VelocityFailover:

1. **Instantly detects** the server is down
2. **Moves affected players** to a limbo server
3. **Monitors** the downed server for recovery
4. **Automatically reconnects** players back to their original server once it’s ready
5. **Blocks** other players from joining unavailable servers with a friendly message

All of this happens seamlessly — players see a short message, wait on limbo, and get moved back automatically.

## Why VelocityFailover?

– **Zero external dependencies** — only the Velocity API, nothing else
– **Extremely lightweight** — no constant heartbeat pinging all servers. Recovery pings run *only* on servers that are actually down
– **Instant detection** — uses Velocity’s kick events instead of slow polling intervals. Players are redirected in milliseconds, not seconds
– **Gradual reconnection** — players are transferred back one at a time to avoid overloading a freshly started server
– **Smart kick detection** — distinguishes between server crashes and normal kicks (bans, anticheat, etc.). A banned player won’t end up on limbo
– **Connection blocking** — players trying to manually join a recovering server get a message instead of being thrown into limbo
– **No Paper plugin needed** — runs entirely on the Velocity proxy side

## Requirements

– Velocity 3.4.0+
– Java 17+
– A limbo server registered in `velocity.toml` (e.g. [PicoLimbo](https://github.com/Quozul/PicoLimbo) or an empty Paper server)

## Installation

1. Download the latest `.jar` from [Releases](../../releases)
2. Place it in your Velocity `plugins/` folder
3. Start the proxy — a default `config.yml` will be generated in `plugins/velocityfailover/`
4. Edit `config.yml` to match your server setup
5. Restart the proxy or use /failoverreload

## Commands and permissions
/failoverreload – reloads config (permission: velocityfailover.reload)

## Configuration

“`yaml
# Name of the limbo server registered in velocity.toml
limbo-server: “limbo”

# Server groups to monitor.
# Groups are for organization only — each server is tracked individually.
groups:
lobby:
servers:
– “lobby1”
– “lobby2”
spawn:
servers:
– “spawn1”
– “spawn2”

# Recovery monitor settings
recovery:
ping-interval-ms: 2000 # How often to ping downed servers
pings-to-ready: 3 # Successful pings in a row before recovery starts
grace-period-ms: 5000 # Extra wait after pings pass (lets plugins load)
transfer-interval-ms: 50 # Delay between each player transfer
ping-timeout-ms: 2000 # Timeout for a single ping

# Kick reasons that indicate a server shutdown (checked via String.contains)
# If a player is kicked with one of these reasons, the server will be marked as offline
shutdown-keywords:
– “Server closed”
– “Server shutting down”

# Messages sent to players (MiniMessage format)
messages:
sent-to-limbo: “The server is temporarily unavailable. You will be moved back automatically when it returns.”
reconnecting: “The server is back online! Reconnecting…”
connection-blocked: “This server is currently unavailable. Please try again in a moment.”
“`

### Important notes

– The **limbo server must not be listed** in any monitored group — it is always treated as available
– Server names in the config must match exactly what is in your `velocity.toml`
– Messages support [MiniMessage](https://docs.advntr.dev/minimessage/format.html) formatting

## How it works

“`
Player on spawn2 ──> spawn2 crashes

KickListener catches the crash kick

Player redirected to limbo instantly

RecoveryMonitor starts pinging spawn2

3 successful pings ──> 5s grace period

Players transferred back one by one

spawn2 marked as ONLINE again
“`

## FAQ

**Q: What if a player disconnects while waiting on limbo?**
They are removed from the reconnect queue. When they rejoin, your existing routing plugin handles them normally.

**Q: What if the server crashes again during player transfers?**
The plugin handles this gracefully. Already-transferred players get kicked back to limbo. Remaining players stay on limbo. Recovery restarts from scratch.

**Q: Does this replace my hub plugin?**
No. This only handles crashes/restarts.

VelocityDiscordLink

## Makes your players link!
### /link command
– Can be changed to any string! Imagine /amongus code
– Customisable description and parameter name!
### Displays a single-use code on join!
– Keeps the same code for each players until proxy restart!
### Supports only one minecraft account per discord link!
– Players can’t spam 100 accounts to a single discord!
##Role whitelist!
###Role Check on join
– Will not let a player without a role on the server!
– Can be disabled

Velocity Discord

# Velocity Discord

Chat from all servers gets bridged with a discord channel

## Features

– Configurable
– Webhooks or embeds or normal text for messages
– Player count in bot status
– List command
– Templating syntax for all messages
– Death and Advancement messages shown
– Server start/stop messages
– Server status in channel topic
– Reload command for config changes while the server is running

> **Note**
> This requires a [companion Velocity plugin](https://github.com/unilock/YepLib)
> and [companion backend mod/plugin](https://github.com/unilock/YepTwo) for advancement/death messages

## Installation

1. Create a bot application [here](https://discordapp.com/developers/applications/)
– Go to the `Bot` tab and click `Add bot`
2. Enable the `SERVER MEMBERS INTENT` and `MESSAGE CONTENT INTENT` under `Privileged Gateway Intents`
3. Copy the bot’s token, you might have to click `Reset Token` first
4. Install the plugin on your server, start the server once, then stop the server again
5. Open the plugin config file at `plugins/discord/config.toml`
6. Under `[discord]`, paste your token in place of `TOKEN`
7. Under `[discord]`, paste the channel id you want to use
– To get a channel id, you have to enable developer mode in Discord
– Open Discord settings, go to `Advanced`, then turn on `Developer Mode`
– Now right-click the channel you want to use and click `Copy ID`
8. Set any additional config options you want
9. Start the server and check if it works

### For Webhooks

1. Create a webhook in the channel you want to use
– Right-click the channel, click `Edit Channel`, go to `Integrations`, click `Create Webhook`
– Copy the webhook URL
2. Paste the webhook URL under `[discord.webhook]` in the config file

### For advancements/deaths

1. Install the [YepLib](https://github.com/unilock/YepLib) velocity plugin alongside this plugin
2. Install the [YepTwo](https://github.com/unilock/YepTwo) backend mod/plugin on each of your backend servers that you want to
receive advancements/deaths from

### Configuration

The config file is generated at `plugins/discord/config.toml`. See [here](https://github.com/fooooooooooooooo/VelocityDiscord/wiki/Configuration) for the default config