Tools · UUID

Minecraft Offline UUID Generator

Every offline-mode Minecraft server — Bukkit, Spigot, Paper, Purpur, Folia — must give each connecting player a stable identifier without calling Mojang. It hashes "OfflinePlayer:" + username with MD5, then stamps the result as a version-3 UUID. This tool runs that exact same calculation in your browser so you get the UUID the server would produce — before the player ever logs in.

Runs 100% in your browser — nothing sent to any serverMatches Bukkit · Spigot · Paper · Purpur · Folia

Minecraft usernames are 1–16 characters. Case-sensitive — Notch and notch produce different UUIDs.

Enter a username above to generate the offline UUID.

Exactly how Minecraft computes offline UUIDs

The entire mechanism lives inside Java's standard library in one line that every Bukkit-based server has called since 2012. Here it is as it appears in CraftBukkit's PlayerProfile code:

UUID offlineUUID = UUID.nameUUIDFromBytes(
    ("OfflinePlayer:" + username)
        .getBytes(StandardCharsets.UTF_8)
);

UUID.nameUUIDFromBytes is defined in RFC 4122 §4.3 as a version-3 UUID: compute the MD5 digest of the input bytes, then overwrite two nibbles to encode the version and variant. Concretely:

  • byte[6] — upper nibble forced to 0x3 (UUID version 3).
  • byte[8] — top two bits set to 10 (RFC 4122 variant).

The resulting 16 bytes are printed in lowercase hex, split by hyphens into the familiar 8-4-4-4-12 pattern. That's the UUID your server writes to ops.json, whitelist.json, world/playerdata/, and every plugin's per-player storage.

Why the "OfflinePlayer:" prefix?

Without a namespace, a player named abc could theoretically hash to a UUID that Mojang happened to assign to a completely different account. By prepending OfflinePlayer:, all offline UUIDs are generated from a hash space Mojang never touches. Collision between an offline UUID and a real Mojang UUID is effectively impossible.

Online UUID vs. Offline UUID — what's the difference?

PropertyOnline UUID (Mojang)Offline UUID
UUID versionVersion 4 — randomly generatedVersion 3 — name-based MD5
Assigned byMojang / Microsoft at account creationThe server, locally, on first join
Changes on rename?No — tied to the account foreverYes — new name = new hash = new UUID
Requires Mojang APIYes (server.properties: online-mode=true)No — pure local computation
Unique globally?Yes — cryptographically randomPer-username — same name → same UUID everywhere

When you actually need an offline UUID

Most server admins only stumble across offline UUIDs when something breaks. Here are the real situations where knowing the exact UUID before the player connects matters:

Granting operator status before first join

ops.json stores entries like {"uuid":"...","name":"Steve","level":4}. If you put in the wrong UUID the server will create a second, duplicate entry the moment that player actually joins, and the first entry will never match. Generate the correct offline UUID here, paste it into ops.json, and you're done.

Whitelist setup without a live server

You're configuring a new server, or the server is offline for maintenance, and you want to pre-populate whitelist.json. Same deal as ops — the UUID must match what the server would compute. Enter each username here and paste the results in.

Plugin data migration and repair

Bukkit plugins typically store per-player files named <UUID>.yml or rows keyed by UUID in a database. Common culprits include EssentialsX, LuckPerms, Vault-backed economy plugins, GriefPrevention, Lands, and virtually every RPG plugin. If you're moving player data between servers, fixing corrupted records, or importing from a backup taken under a different UUID, you need the exact offline UUID.

Online-mode → offline-mode migration

Switching online-mode from true to false means every player gets a new UUID on their next login. Old world data, plugin files, and database rows all sit under the Mojang UUID. Fetch each player's Mojang UUID from the API, generate their offline UUID with this tool, then rename every file and update every database row. Skip this step and players lose all their progress.

Writing plugins and admin scripts

If your plugin needs to look up a player who has never joined, you can't call Bukkit.getOfflinePlayer(name) without potentially blocking the main thread. Compute the UUID yourself with the same formula, use the Java or Python output from this tool, and construct the UUID directly.

BungeeCord and Velocity networks

In a proxy network the UUID situation gets layered. If the proxy runs in offline mode, it computes the offline UUID and forwards it to all backends — the backend's own online-mode setting becomes irrelevant for UUID assignment. If the proxy is in online mode, it fetches the Mojang UUID and passes that through. Know which mode your proxy uses before relying on this tool for a network.

Common mistakes and gotchas

Wrong capitalisation

Minecraft usernames are case-sensitive in the hash. xXDragon_SlayerXx and xxdragon_slayerxx produce entirely different offline UUIDs. Check the player's profile page or session screen to confirm the exact capitalisation — do not guess.

Using the Mojang UUID on an offline server

Fetching a UUID from api.mojang.com gives you the account's online UUID (version 4). Pasting that into ops.json on an offline server will never match — the server generates a version-3 offline UUID when the player joins and ignores the entry you added.

Spaces and special characters

Vanilla Minecraft restricts usernames to letters, digits, and underscores, but some cracked launchers let players use spaces or other characters. Those characters are included in the hash — a username of Hello World (with a space) would produce a different UUID than HelloWorld. This tool handles them correctly; just paste the username exactly as-is.

Proxy overrides the UUID

If you're running BungeeCord with ip_forward: true or Velocity with player-info-forwarding-mode = modern, the proxy sends a spoofed login packet containing whatever UUID it decided to assign. An online-mode proxy sends the Mojang UUID; an offline-mode proxy sends the offline UUID. Either way, the backend's own computation is bypassed.

Frequently asked questions

What is a Minecraft offline UUID?

A version-3 UUID generated on the server from MD5("OfflinePlayer:" + username). Servers running online-mode=false use it because they can't call Mojang's session API. The result is stable for a given username but unrelated to the Microsoft account UUID.

Does the UUID change when a player renames?

Yes — the offline UUID is a hash of the name, so renaming from Builder123 to Builder_123 produces a completely new UUID. All stored plugin data sits under the old UUID. To preserve data across a rename you must manually rename every data file.

Which server software uses this exact formula?

CraftBukkit, Spigot, Paper, Purpur, Pufferfish, Folia, and virtually every other Bukkit fork call the same Java method. Vanilla Minecraft in offline mode follows the same convention. BungeeCord and Velocity also use this formula when they run in offline mode — but online-mode proxies forward the Mojang UUID to backends instead.

Is the offline UUID case-sensitive?

Yes, entirely. The MD5 is computed on the raw UTF-8 bytes of the username. Always match the capitalisation the player uses in their client — that is the string the server hashes.

How do I get the offline UUID for LuckPerms?

On an offline-mode server LuckPerms automatically uses the offline UUID when a player first connects. For pre-importing permissions, enter the username here, copy the plain-text UUID, and use it as the player identifier. You can also use /lp user <username> info in-game to confirm the UUID LuckPerms is using.

Why does my offline UUID not match the one in the server's playerdata folder?

Three likely causes: (1) wrong capitalisation; (2) your server runs behind an online-mode proxy which forwarded a Mojang UUID; or (3) a plugin overrides UUID assignment. Double-check the server log line UUID of player X is Y — that is the definitive UUID assigned during that session.

Is this tool safe — does it send my usernames anywhere?

No. The MD5 computation runs entirely in your browser using JavaScript. No username, UUID, or other data leaves your device.

Where can I find offline-mode Minecraft servers to run or join?

Browse thousands of Java and Bedrock server listings on the MinecraftServer.Buzz server list. You can also explore servers with the Server Cloud or check Minecraft service status if you're having trouble connecting.