Jump to content

How do I transfer player data between users on a server?


Go to solution Solved by Rainbow Fresh,

Recommended Posts

Posted

A copy of VS was loaned so someone could try the game out on my server before committing to a purchase. They have (of course) decided this game is great and purchased a copy. We now would like to transfer the player data as intact as possible between the users. How can I do this? Waypoints are top priority and mods like Cartography are not preferred as it will require server interruption to install then uninstall the mod, simultaneously risking corruption.

All suggestions are welcome, or even just pointers on where the data is stored and how. Thanks in advance :)

Posted

What player data are we talking about? If we are talking inventories, I think they could be part of the save-file SQLite database (if there is no relevant files in the playerdata folder, am currently not home so can't check). In that case you need to most certainly make a backup, get an SQLite DB editor, open that thing up, try to somehow figure out which UUID belongs to which player and replace it with the new UUID of the target player, then hope it works.

Map data is stored on your PC in the VintagestoryData folder under "Maps" - it's a separate DB file with the filename being the UUID of the world (if they only played on one it should be easy enough - in fact, if they played on their PC they already have the map data they explored; you don't.)

Posted (edited)
13 hours ago, Rainbow Fresh said:

What player data are we talking about? If we are talking inventories, I think they could be part of the save-file SQLite database (if there is no relevant files in the playerdata folder, am currently not home so can't check). In that case you need to most certainly make a backup, get an SQLite DB editor, open that thing up, try to somehow figure out which UUID belongs to which player and replace it with the new UUID of the target player, then hope it works.

Map data is stored on your PC in the VintagestoryData folder under "Maps" - it's a separate DB file with the filename being the UUID of the world (if they only played on one it should be easy enough - in fact, if they played on their PC they already have the map data they explored; you don't.)

Thank you very much for this information, it was very helpful. I'm trying to move over everything, but map data is most important. I was able to get the map itself transferred, but the waypoints were not showing up on the new account. I assume this is due to some sort of assignment to player ID - is there a way to reassign the waypoints to a new user?

Edit: Update: I was able to locate waypoint data server-side in [worldname].vcdbs but the text is scrambled looking at it in plain-text. Wondering now if there is some way I can figure out where to change the user ID assignment.

Edited by DodoWrangler
Update to information to contextualize question
  • Solution
Posted (edited)
16 minutes ago, DodoWrangler said:

Thank you very much for this information, it was very helpful. I'm trying to move over everything, but map data is most important. I was able to get the map itself transferred, but the waypoints were not showing up on the new account. I assume this is due to some sort of assignment to player ID - is there a way to reassign the waypoints to a new user?

Edit: Update: I was able to locate waypoint data server-side in [worldname].vcdbs but the text is scrambled looking at it in plain-text. Wondering now if there is some way I can figure out where to change the user ID assignment.

Everything in the VS databases is stored as raw byte data in BLOB format. You wouldn't be able to decipher anything if you tried. Since you are trying to transfer EVERYTHING over regardless though, just moving the data to the entry with the right player UUID should do the trick.

EDIT: To find the UUID, just check "playerdata.json" in the "Playerdata" folder, assuming you both have been on the same world with your individual accounts.

Edited by Rainbow Fresh
Posted
5 hours ago, Rainbow Fresh said:

Everything in the VS databases is stored as raw byte data in BLOB format. You wouldn't be able to decipher anything if you tried. Since you are trying to transfer EVERYTHING over regardless though, just moving the data to the entry with the right player UUID should do the trick.

EDIT: To find the UUID, just check "playerdata.json" in the "Playerdata" folder, assuming you both have been on the same world with your individual accounts.

Worked sufficiently, thank you!

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.