Minecraft Java Edition – How to Keep User Data When Migrating Maps from Realms to a Server

minecraft-java-editionminecraft-java-edition-realmsminecraft-java-edition-server

I'm planing to migrate Minecraft Realms map to my server. I've managed to migrate the map, but the problem is that players data is not migrated.

Is it possible to migrate map from Realms with all players inventory, ender chest contents and experience, so when the same player from Realms logs into the server, he will keep all his inventory? What would be the process to do that?

Only solution I have found so far is to ask all players to move all their possession into a chest on Realms and pick them up on the server after migration. Problem with this approach is to get all players do that within reasonable time range.

Thanks in advance.

Best Answer

Do check your server.properties on new server if there is this:

online=true

If there is false, then this error can occur. Some providers set this as default (which is really bad practice), so you could miss it.

The problem is that since 1.7.10, Minecraft uses UUID - identification numbers, that are bound to player's account and not a name - therefore you can change your name, but even then you are same person for servers.

However, this works only if server does authenticate with Mojang session servers (so is online=true). It gets player's UUIDs from those servers, therefore can store player's statistics and inventory (and all other player's data) in files named in format of <UUID>.dat.

However if server is in online=false, it has no way to get UUIDs, so it computes them itself from player's name. And those two UUIDs do NOT match! So same player will be someone totally different for server, dependant on aforementioned settings, which will lead into lose of inventories etc.

Realms should be online=true by definition, so you need your server use same system. Then it should give respective players their old stats&inventories. (IF you managed to copy the data. They are located in world's folder)


DO NOTE:

Setting this value to false means that players who did not bought the game can login to the server (and possibly steal someone's person), which is against the licence of Minecraft. You shall not let something like that happen. Also it is really big danger for server security, because anyone can login on admin's accout with OP and do really bad stuff.

Never use online=false except situations without internet. (for example you play on countryhouse via lan only)