
Discord Verification
A production-ready Velocity plugin that forces players to link their Discord account before joining your server. Players are placed in a beautiful Limbo world where they receive a verification code to send to your Discord bot.
Velocity Discord Verification — Discord verification system for Velocity proxy
What this project does
Velocity Discord Verification is a plugin that requires players to link their Discord account before accessing your Minecraft server. When a player connects for the first time, they are placed in a custom Limbo world where they receive a 4-digit verification code. The player sends this code to the Discord bot via direct message, after which their accounts are linked and they gain access to the server.
Why you should download
The plugin provides server security by requiring identity verification through Discord. It is fully integrated into a single JAR file, requires no separate bot hosting, automatically synchronizes Discord roles and nicknames, and operates with high performance even on large servers. The system includes brute-force protection, a beautiful interface with gradient messages and sound effects.
Important information before downloading
Requires Velocity 3.0+, Java 17+, and the LimboAPI plugin. You need a Discord bot token with required intents enabled. The plugin supports SQLite (by default) and MySQL for multi-proxy setups. All messages are fully customizable through config files.
Key features
- Discord verification before server access
- Built-in Discord bot (no separate hosting required)
- Automatic Discord role and nickname synchronization
- Beautiful interface with gradient messages, action bar, and sound effects
- Attack protection: attempt limiting, code expiration, brute-force protection
- High performance using HikariCP
How to install
- Download velocity-discord-verification.jar
- Place the file in the plugins/ folder
- Install the LimboAPI plugin
- Start the server to generate config files
- Edit config.yml and messages.yml
- Restart the server
Discord bot setup
- Create an application on Discord Developer Portal
- Create a bot and copy the token
- Enable intents: MESSAGE CONTENT INTENT, SERVER MEMBERS INTENT, DIRECT MESSAGES
- Invite the bot to your server via OAuth2
How it works
When a player connects for the first time, the system checks their UUID in the database. If not found, a 4-digit code is generated and the player is teleported to the Limbo world. There they see instructions and a action bar with a countdown (30 seconds). The player sends the code to the Discord bot via direct message. The bot verifies the code, links the accounts, and the player receives a success message. Upon reconnection, the player goes directly to the server.
For returning players, the system checks if they are on the Discord server. If yes, they are automatically assigned the verification role and can connect.
Limbo world
Verification takes place in a special world with a void, an invisible barrier cage (5x5x4), disabled chat and block interaction. The player sees a action bar with countdown, periodic reminders every 5 seconds, and sound effects.
Security
The system includes attempt limiting (3 per minute), cryptographically secure code generation, one-time codes with expiration (30 seconds), automatic cleanup of expired codes, and ensures that one Discord account is linked to only one Minecraft UUID.
Configuration
The plugin uses config.yml for main parameters: bot token, Discord server ID, verification role ID, code length, expiration time, attempt limit, database type (SQLite or MySQL). All messages are fully customizable in messages.yml with MiniMessage formatting support.
Performance
The plugin is optimized for large servers using HikariCP for connection pooling, asynchronous Discord API calls, efficient code cleanup scheduler, and minimal memory consumption. For servers with less than 100 players, SQLite is recommended; for large servers and multi-proxy setups — MySQL.
Troubleshooting
If the bot doesn't start, verify the token is correct and intents are enabled in Discord Developer Portal. If players can't verify, ensure the bot has direct message permissions and the server ID is correct. For database errors, check your credentials and ensure MySQL is running (if using MySQL).
License
MIT
Credits
LimboAPI, JDA (Discord Java API), Velocity
