
Nicked
A lightweight, packet-level nick plugin — change player names and skins on the fly without touching server data. Includes a developer API, PlaceholderAPI support, and per-player skin fetching.

Nicked
Packet-level nickname plugin with skin changing, a full developer API, and PlaceholderAPI support.
Nicked lets operators and players adopt a completely different identity — a different name and a different skin — without the real player ever being exposed to others. Everything is handled at the packet level, so the illusion is seamless and requires no client-side mods.
Features
- Packet-level nicking — Names are rewritten inside
PLAYER_INFO_UPDATEpackets before they reach any client. No client mods needed. Compatible with Paper, Spigot, Purpur, Folia, and Bukkit 1.20+. - Skin changing — When a nick is applied, Nicked fetches the corresponding Mojang skin asynchronously and injects it into the same packet. The nicked player even sees their own new skin in first-person (configurable).
- Random nicking — Run
/nickwith no arguments to be assigned a name at random from your configured name pool. - Persistence — Nicks survive player disconnects and full server restarts. Persistent data is stored in
plugins/Nicked/nicks.ymland restored automatically on join. - Developer API — A clean, well-documented Java API lets other plugins check nick state, apply or remove nicks programmatically, and listen to five purpose-built events (
NickApplyEvent,NickRemoveEvent,NickChangeEvent,NickRandomSelectEvent,NickResolveEvent). - PlaceholderAPI support — Three placeholders integrate with any chat, scoreboard, or tab-list plugin:
%nicked_displayname%— The player's current display name (nick or real name)%nicked_is_nicked%—true/false%nicked_real_name%— The player's actual username
- Fully customisable messages — Every message is defined in
messages.ymlusing MiniMessage. Gradients, hex colours, hover events — anything MiniMessage supports is fair game.
Compatibility
| Platform | Supported |
|---|---|
| Paper 1.20+ | ✅ |
| Spigot 1.20+ | ✅ |
| Purpur 1.20+ | ✅ |
| Folia 1.20+ | ✅ |
| Bukkit 1.20+ | ✅ |
| Java | 21+ required |
Optional soft dependency: PlaceholderAPI — enables %nicked_*% placeholders.
Commands
| Command | Description | Permission |
|---|---|---|
/nick [name] | Nick yourself (random if no name given); toggle off if already nicked | nicked.command.nick |
/unnick | Remove your own nick | nicked.command.unnick |
/nickother <player> <name> | Nick another player to a specific name | nicked.command.nickother |
/nickall | Randomly nick all online players | nicked.command.nickall |
/realname <name> | Reveal the real username behind a nick | nicked.command.realname |
The nicked.admin permission grants access to all commands and is assigned to OPs by default.
Quick Start
- Drop
Nicked.jarinto your server'splugins/folder. - Restart the server —
plugins/Nicked/config.ymlandmessages.ymlwill be generated. - Grant
nicked.adminto trusted staff (OPs already have it). - Run
/nick Dream— your name and skin change instantly. - Run
/nickagain with no arguments, or/unnick, to revert.
Developer API
Add Nicked as a compile-only dependency via JitPack:
Gradle (Groovy)
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
compileOnly 'net.pharogames:Nicked:VERSION:api'
}
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>net.pharogames</groupId>
<artifactId>Nicked</artifactId>
<version>VERSION</version>
<classifier>api</classifier>
<scope>provided</scope>
</dependency>
Replace VERSION with the latest release tag (e.g. v1.0.0). See the API documentation for the full reference.
Links
| Resource | URL |
|---|---|
| 📖 Documentation | nicked-docs.vercel.app |
| 💬 Discord | discord.gg/7eQt8sQ8at |
| 🐛 Issues | GitHub Issues |
| 💡 Feature Requests | GitHub Issues |
| 🔧 Source Code | github.com/PharoGames/Nicked |
| 📦 Developer API | API Docs |
License
Nicked is licensed under the MIT License.
