
UUID Impersonate
Allows you to impersonate another player at the UUID level which allows you to load in as though you are really that player (NBT and all).
About this Mod
The motivation behind this mod was to:
- Modify Player (NBT) Data of Inactive Players
- Dump Inventories (and Ender Chests)
- Interact with mods as though you are the player so you don't need to resort to NBT manipulation if the mod does not have admin functionality/management
The way the mod functions is by
- Letting the server check if the actual player joining (not the person they are impersonating) is allowed to join the server
- So the original player cannot use this to bypass bans or other things that would inhibit joining ordinarily
- It also has the helpful side effect of making it so (on a whitelisted server) you don't need to whitelist the player you are impersonating.
- Then after it verifies you can join, it checks if you are trying to impersonate someone (via the
/uuidimpersonate impersonate <player|uuid>command you used on the previous login)- The
/uuidimpersonate impersonate <player|uuid>command is guarded by both a not impersonated predicate and a has OP level 4 (owner) predicate. - The accompanying
/uuidimpersonate clearcommand is guarded by just an impersonated predicate (so no matter what permissions you have, you can stop the impersonation)- If for some reason the
/uuidimpersonate clearcommand is not working, the impersonation list is not persistent so you can also restart the server to clear ALL impersonations.
- If for some reason the
- The
- If you are then it swaps out the original GameProfile with the player you are trying to impersonate's (generated) GameProfile.
It is that simple, however, as there is a hardcoded 16 character limit for the GameProfile's name, I had to inject into various places like the ServerPlayerEntity#getPlayerListName (for tab list) and the PlayerEntity#getName (for chat messages and others) functions to get the name I wanted to display ("ImpersonatedName (Impersonated by OriginalName)") while impersonating which ensures transparency for other players.
This is still not perfect though, for instance, I observed that some mods (like Fabricord) check the GameProfile name directly (instead of PlayerEntity#getName) and thus it will only appear as though the (Impersonated) player joined the world without the descriptor of who is impersonating them (looks like a normal non-impersonated join)
Available Versions
How to Install UUID Impersonate on Your Server
Order Server
Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).
Set fabric Loader
In the panel under "Egg", select the fabric loader and matching Minecraft version (1.21).
Install Mod
Open the mod browser in the dashboard and search for "UUID Impersonate". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
1.21, 1.20.1
Server-side
✓ RequiredRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
UUID Impersonate server crashes on startup – what to do?
Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21). You can switch loaders with one click in the panel.
Is UUID Impersonate compatible with fabric?
UUID Impersonate officially supports fabric for Minecraft 1.21, 1.20.1. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with UUID Impersonate – how to optimize performance?
Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if UUID Impersonate consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install UUID Impersonate with just one click on your server.