️ ExodusWhitelist
Custom Whitelist + Discord Ticket System — manage access with one click!
Tired of manually adding players to your whitelist? Let Discord handle it!
✨ Features
- Custom Whitelist — case-sensitive nickname matching with UUID support.
- Discord Ticket System — players submit applications via Discord modal forms.
- ✅ One-Click Approval — approve or reject applications instantly with buttons.
- DM Notifications — players receive direct messages when their application is processed.
- ️ SQLite & MySQL — choose local or remote database with HikariCP connection pooling.
- Multi-Language — English, Russian, German, Spanish, French.
- ⚙️ Fully Customizable — all messages, colors, form fields and buttons configurable via config.yml.
- Custom Form Fields — up to 5 fields in ticket applications (nickname, reason, age, etc.).
- Ticket Management — close, reopen, delete tickets with interactive buttons.
- bStats Metrics — lightweight usage statistics (ID: 31596).
- Lightweight — no external dependencies, minimal server impact.
Supported Languages
| Code |
Language |
| en |
English |
| ru |
Russian |
| de |
German |
| es |
Spanish |
| fr |
French |
Change language in config.yml:
settings.language: en
How the Ticket System Works
- Bot sends an embed panel with a "Submit Application" button in your Discord channel.
- Player clicks the button → a modal form opens (nickname, reason, custom fields).
- A private ticket channel is created — player + admin role have access.
- Admin sees the application embed with action buttons:
- ✅ Approve — nickname added to whitelist, player receives DM.
- ❌ Reject — ticket closed, player receives DM.
- Close — player loses write permission in the channel.
- ️ Delete — channel deleted after 3 seconds.
- Reopen — restores write permission for the player.
Commands
| Command |
Description |
| /ewl add <nick> |
Add player to whitelist |
| /ewl remove <nick> |
Remove player from whitelist |
| /ewl list [page] |
List whitelisted players |
| /ewl reload |
Reload config, database & Discord bot |
| /ewl status |
Show plugin status |
| /ewl on |
Enable whitelist |
| /ewl off |
Disable whitelist |
Aliases: /exoduswl, /exwhitelist
Permissions
| Permission |
Description |
Default |
| exoduswl.admin |
Access to all commands |
OP |
⚙️ Configuration
Code (YAML):
# Plugin language: en, ru, de, es, fr
settings:
enabled
: true
language
:
"en"
kick-message
:
"&cYou are not in the server whitelist. Apply via Discord!"
case-sensitive
: true
# Database settings: SQLITE or MYSQL
database:
type
:
"SQLITE"
mysql:
host
:
"localhost"
port
: 3306
database
:
"exodus_whitelist"
username
:
"root"
password
:
"password"
parameters
:
"useSSL=false&characterEncoding=UTF-8"
sqlite:
file
:
"whitelist.db"
# Discord bot settings
discord:
enabled
: true
bot-token
:
"YOUR_BOT_TOKEN_HERE"
guild-id
: 0
ticket-category-id
: 0
admin-role-id
: 0
ticket-panel-channel-id
: 0
# Ticket form (up to 5 fields in Discord Modal)
ticket-form:
title
:
"Whitelist Application"
description
:
"Fill out the form to get access to the server"
fields:
- label
:
"Minecraft Nickname"
placeholder
:
"Enter your nickname"
required
: true
max-length
: 16
- label
:
"Reason"
placeholder
:
"Why do you want to join the server?"
required
: true
max-length
: 500
- label
:
"Age"
placeholder
:
"Enter your age"
required
: false
max-length
: 3
- label
:
"Experience"
placeholder
:
"How long have you been playing Minecraft?"
required
: false
max-length
: 200
# Embed messages (fully customizable)
messages:
panel-title
:
" Whitelist Application"
panel-description
:
"Click the button below to apply for server access"
panel-color
:
"#5865F2"
ticket-title
:
"Application from %user%"
ticket-description
:
"Awaiting admin review"
ticket-color
:
"#FEE75C"
approved-title
:
"✅ Application Approved"
approved-description
:
"Your nickname %player% has been added to the whitelist. You can now connect!"
approved-color
:
"#57F287"
rejected-title
:
"❌ Application Rejected"
rejected-description
:
"Your application has been rejected. You may submit a new one."
rejected-color
:
"#ED4245"
closed-title
:
" Ticket Closed"
closed-description
:
"This ticket has been closed by an admin"
closed-color
:
"#99AAB5"
# Button labels
buttons:
create-ticket
:
" Submit Application"
approve
:
"✅ Approve"
reject
:
"❌ Reject"
close
:
" Close"
delete
:
"️ Delete"
reopen
:
" Reopen"
Two Versions Available
| RU Version |
EU Version |
| Default Language |
Russian |
English |
| Config Comments |
Russian |
English |
| Config Values |
Russian |
English |
| Included Languages |
ru, en, de, es, fr |
ru, en, de, es, fr |
Both versions are functionally identical — the only difference is the default config language.
Installation
- Download ExodusWhitelist-EU-1.0.0.jar (or RU version).
- Place it in your server's plugins folder.
- Restart the server.
- Configure plugins/ExodusWhitelist/config.yml with your Discord bot token and IDs.
- Use /ewl reload to apply changes.
Compatibility
- Minecraft: 1.16 — 1.21.4+
- Platform: Paper, Spigot, Purpur
- Java: 11 / 17 / 21+
- Folia: Not supported
- Dependencies: None
Discord Bot Setup
- Create a bot at Discord Developer Portal.
- Enable intents: Server Members, Message Content.
- Invite the bot with permissions: manage channels, send messages, use components.
- Enter the bot token and IDs in config.yml:
- guild-id — your Discord server ID
- ticket-category-id — category for ticket channels
- admin-role-id — admin role ID
- ticket-panel-channel-id — channel for the application panel
❓ FAQ
Q: Does this replace the vanilla whitelist?
A: Yes! ExodusWhitelist uses its own whitelist system with case-sensitive matching and UUID support. It automatically disables the vanilla whitelist.
Q: Can players apply without Discord?
A: The ticket system requires Discord, but admins can still add players manually with
/ewl add <nick>.
Q: Does it work with MySQL?
A: Yes! Switch
database.type to
MYSQL and configure the connection details. HikariCP handles connection pooling.
Q: Can I customize the application form?
A: Absolutely! You can set up to 5 fields with custom labels, placeholders, required status and max length.
Q: Is it compatible with Spigot?
A: Yes! The plugin uses only Bukkit API, so it works on Paper, Spigot and Purpur.
Support
Found a bug or have a suggestion?
- Leave a comment below.
- Discord: ExodusTeam
Made with ❤️ by Grib