UltraWhitelist
ModrinthMulti-list whitelist with Named lists, Hotswap and importing
UltraWhitelist
UltraWhitelist is a Paper/Folia whitelist plugin with multiple named lists, JSON imports, and folia-safe enforcement.
Features
- Multi Whitelist support: Designed for multiple Lists at the same time
- Hotswapping Lists: Lists can be swapped using a single command
- Easy Import:
/wl import whitelist.json xxximports your already existing Server whitelist.json - Enforcement: Kicks all players not on the list
- Extensive list management: Lots of commands to Create/Delete/Merge/Manage lists
- Developer friendly API: Easy plugin integration
Commands
| Command | Purpose |
|---|---|
| /wl on | Enable whitelist. |
| /wl off | Disable whitelist. |
| /wl info | Show current status. |
| /wl list | Show every whitelist. |
| /wl listplayers <list> [page] | Show player names in a list. |
| /wl find <player> | Show every list containing a player. |
| /wl create <name> | Create a list. |
| /wl delete <list> | Delete a list |
| /wl add <list\|all> <player> | Add a player to a list / all lists. |
| /wl remove <list\|all> <player> | Remove a player from a list / all lists. |
| /wl use <list> | Change the active in-use list. |
| /wl enforce [list] | Kick online players not allowed by a list. |
| /wl merge <a> <b> <new> | Merge two lists into a new list. |
| /wl addfromlist <source> <destination> | Copy new entries between lists. |
| /wl import <file.json> <list> | Import a whitelist-style JSON file. |
| /wl reload | Reload the plugin. |
| /wl help | Show command help. |
Permissions
| Permission | Purpose | Default |
|---|---|---|
| ultrawhitelist.admin | Use whitelist-management commands. | Operators |
| ultrawhitelist.bypass | Avoid /wl enforce kicks. | Operators |
Developer API
1. Add the Dependency:
Maven
<repositories>
<repository>
<id>lolyay-releases</id>
<url>https://maven.lolyay.dev/releases</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.lolyay.mc</groupId>
<artifactId>WhitelistPlugin</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Gradle (Kotlin DSL)
repositories {
maven("https://maven.lolyay.dev/releases")
}
dependencies {
compileOnly("io.lolyay.mc:WhitelistPlugin:1.0.0")
}
2. Depend on it:
depend: [UltraWhitelist]
3. Get the service
Everything goes through WhitelistService, reachable from the plugin instance:
import io.lolyay.mc.whitelistPlugin.WhitelistPlugin;
import io.lolyay.mc.whitelistPlugin.core.WhitelistService;
WhitelistPlugin wl = (WhitelistPlugin) Bukkit.getPluginManager().getPlugin("UltraWhitelist");
if (wl == null || wl.service() == null) return; // not installed / not enabled yet
WhitelistService service = wl.service();
3. WhitelistService API
Global state
| Method | Description |
|---|---|
| boolean isEnabled() | Is whitelisting globally on? |
| boolean setEnabled(boolean) | Turn whitelisting on/off; returns false when unchanged. |
| String activeListName() | Name of the active (login-enforced) list, or null. |
| WhitelistList activeList() | The active list object, or null. |
| boolean setActiveList(String name) | Set the active list (null clears it); false when unchanged. |
Membership
| Method | Description |
|---|---|
| boolean isWhitelisted(UUID id, String name) | The exact check used on login. true if whitelisting is off, no active list, or the identity is on the active list (by UUID or name). |
boolean allowed = service.isWhitelisted(event.getUniqueId(), event.getName());
Lists
| Method | Description |
|---|---|
| WhitelistList getList(String name) | Case-insensitive lookup, or null. |
| Collection<WhitelistList> lists() | All lists. |
| List<String> findLists(UUID id, String name) | Sorted names of every matching list. |
| boolean createList(String name) | false if it already exists. |
| boolean deleteList(String name) | false if no such list. |
Entries
| Method | Description |
|---|---|
| boolean addUuid(String list, UUID id) | Add an entry; false when unchanged or missing. |
| boolean addName(String list, String name) | Add a name entry; false when unchanged or missing. |
| boolean removeUuid(String list, UUID id) | Remove an entry; false when unchanged or missing. |
| boolean removeName(String list, String name) | Remove an entry; false when unchanged or missing. |
| List<String> addUuidToAll(UUID) / addNameToAll(String) | Add to every list and return changed list names. |
| List<String> removeUuidFromAll(UUID) / removeNameFromAll(String) | Remove from every list and return changed list names. |
| MergeResult merge(String a, String b, String newName) | Merge two lists into a new one. |
| int addFromList(String src, String dest) | Copy entries and return the number added (-1 if missing). |
Name cache (UUID <-> name)
Entries are stored UUID-first; a persistent cache maps UUIDs to last-known names
(fed by logins, imports, and playerdb.co lookups).
| Method | Description |
|---|---|
| void cacheName(UUID id, String name) | Record/persist a UUID -> name mapping. |
| String nameFor(UUID id) | Last-known name for a UUID, or null. |
| UUID uuidForName(String name) | Cached UUID for a name (case-insensitive), or null. |
WhitelistList
| Method | Description |
|---|---|
| String name() | Display name. |
| boolean contains(UUID id, String name) | Matches by UUID or name. |
| Set<UUID> uuids() | Live UUID entries. |
| Map<String,String> names() | lower-cased name -> display name. |
| int size() | Total entry count. |
MergeResult: { OK, MISSING_A, MISSING_B, TARGET_EXISTS }.
Versions
FAQ
How do I install UltraWhitelist?
Download the file for your Minecraft version and loader from this page, then drop the .jar into your mods (or plugins) folder and launch the game.
Is UltraWhitelist free?
UltraWhitelist is free to download on Modgrid — we link straight to the official source, no paywall or bundled installer.
Which Minecraft versions does UltraWhitelist support?
Works with Folia, Paper, Purpur. Supports versions 26.1.2–26.2. See the download section on this page for the full list of supported versions and loaders.

Comments 0
No comments yet. Be the first to share your thoughts.