Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
UniversalAdmin is a universal admin platform for Paper servers - not another pile of unrelated commands, but a core with a clean layered architecture (GUI/Commands → Services → Actions → Repositories → Paper/Database) built to grow into a full extension ecosystem and, later, an optional web dashboard.
Everything - kicking a player, changing a gamerule, clearing a filtered set of lagging entities - runs through the same permission-checked, audited pipeline whether it's triggered from the in-game GUI or (soon) a command or a future REST API. No feature reimplements its own permission handling, its own SQL, or its own audit logging.
Status: alpha. Six of the eight built-in modules are fully usable. There is no public extension API yet and no web app - both are planned.
Features
- Players - browser (online/offline/last-seen/search), profile page, ~20 actions (teleport, heal, effects, gamemode, inventory/ender chest editor).
- Moderation - kick/ban/tempban/IP-ban/mute/tempmute/warn/unban/unmute/remove-warn, join/chat enforcement, GUI wizard, plus vanish/godmode/no-collision/staff mode with crash-safe snapshot/recovery.
- Server - live dashboard, broadcast (message/title/actionbar), maintenance mode with an allow-list, shutdown/restart with confirmation and a configurable countdown.
- Worlds - world browser/profile, teleport/spawn/time/weather/difficulty, world border management, a dynamic gamerule GUI that reads every gamerule at runtime (no hardcoded list).
- Whitelist - native whitelist wrapping plus its own metadata (reason, notes, expiration), ownership model, join check with an hourly sweep.
- Performance - TPS/MSPT/memory dashboard, per-world breakdown, entity overview grouped by type/world, short in-memory history, staff alerts on configurable thresholds, and a deliberately narrow Entity Clear (never players, protected types excluded by default, live preview, confirmation, fully audited) - not an aggressive lag cleaner.
- Audit Log - every mutating action is audited automatically; a filterable, paginated in-game log with a detail view.
- Full audit trail, typed permissions, typed/validated settings, bilingual (English/German) out of the box.
Requirements
- Paper (Spigot/CraftBukkit are not supported)
- Java 25 on the server
- No required plugin dependencies
- Optional: MySQL/MariaDB for multi-server setups
Supported Minecraft/Paper versions
Built and tested against Paper API 26.2. Whether older Paper builds also work hasn't been confirmed yet - only the exact pinned version is verified in CI right now.
Dependencies
None required. No mandatory dependency on Vault, LuckPerms, PlaceholderAPI, or ProtocolLib. Works with any standard permission plugin (or plain server-operator status) since permission nodes are registered through Bukkit's own PluginManager. The jar bundles its own database drivers (SQLite, MariaDB/MySQL) and connection pool, so nothing has to be installed alongside it.
Installation
- Download the jar below.
- Drop it into the server's
plugins/folder. - Start the server.
config.ymlandlang/en_US.yml/lang/de_DE.ymlare created automatically inplugins/UniversalAdmin/. - Runs immediately on the bundled SQLite database - no setup required.
Commands
| Command | Purpose |
|---|---|
/admin (aliases /ua, /uadmin) |
Opens the main menu for a player; console/command blocks get a status report |
/admin reload |
Reloads UniversalAdmin's own config.yml (never Bukkit's global /reload) |
/admin server broadcast|shutdown|restart|cancel … |
Server control from the console |
/admin staff recover |
Manually restores a stuck staff-mode snapshot |
Most functionality is GUI-driven today; the underlying actions already run through the same executor and are command-ready, only the command frontends are still missing.
Permissions
Every protected action has its own universaladmin.<module>.<node> permission node, registered at runtime and compatible with any standard permission plugin. All nodes default to op. The complete, current list lives in the documentation.
Anonymous statistics
UniversalAdmin can send an anonymous heartbeat so the project can see how many installations are active, how many players are online across them, and how versions are distributed.
A heartbeat contains exactly seven values: a random installation id, the plugin id, the plugin version, the Minecraft version, the Java major version, the number of online players, and the server's player slot count.
Never collected: server IP, hostname, domain, port, player names, player UUIDs, player IPs, chat, commands, world names, coordinates, other installed plugins, file or database contents, hardware identifiers, MAC addresses, OS user names, or file paths. The installation id is 128 random bits and is not derived from anything about the machine.
Switch it off completely with telemetry.enabled: false in config.yml - then no request of any kind is made. Full documentation: https://github.com/nicki41/UniversalAdmin/blob/main/docs/user/telemetry.md


