Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This breaks other players saves #8

Closed
Fervantpigeon opened this issue Jan 22, 2024 · 18 comments
Closed

This breaks other players saves #8

Fervantpigeon opened this issue Jan 22, 2024 · 18 comments
Labels
tech-support Issues making technical errors or asking for technical support on how to use the script.

Comments

@Fervantpigeon
Copy link

Other players are now unable to load with their save
While this fixed the hosts save it broke other players saves

@yropro
Copy link

yropro commented Jan 22, 2024

How did you get yours to work? It doesn't seem to see my save file.

ERROR: Your co-op host's player save does not exist. Did your host create their character? Once they create their character, a file called "Files\uesave\bin\uesave.exe/Players/C:\Users\Evcas\Desktop\0C792F3B45ACCC8E4E2CAA9B2ABF3093.sav" should appear. Refer to steps 3&4 of the README.

is the result of
python fix-host-save.py C:\Program Files\uesave\bin\uesave.exe C:\Users\Evcas\Desktop\0C792F3B45ACCC8E4E2CAA9B2ABF3093 GUIDHERE

@rDarge
Copy link

rDarge commented Jan 22, 2024

@yropro

You need to wrap your third parameter in quotes. Try this (after adding your GUID):

python fix-host-save.py "C:\Program Files\uesave\bin\uesave.exe" C:\Users\Evcas\Desktop\0C792F3B45ACCC8E4E2CAA9B2ABF3093 GUIDHERE

@Fervantpigeon I was able to run this fine in a server that had player data for the host and three other players.

Please share your OS and the steps you took/commands you ran if you'd like more help.

@Essence1720
Copy link

@rDarge I am also experiencing this same issue with other players saves no longer working.

It appears as if their GUID's are also different from the co-op world to the dedicated server hosting.

I'm running Windows 11 on all devices (SteamCMD hosted instance for the dedicated).

Steps I took:

-Copied all player and world data from co-op location to the dedicated server install location.
-Starting the game server and noting down the new GUID once I connected with my host account
-Shutting down the dedicated palworld server instance
-In a CMD prompt running as admin I ran the following:

python fix-host-save.py "C:\Users<myuser>.cargo\bin\uesave.exe" C:\Users<username>\Desktop%INSTALL%\ XXXXXXXX000000000000000000000000

%INSTALL% is the location of the save files that were copied into the palworld server folder

Everything worked for my profile as the world level is correct and all my data is recovered but the friends I played with on the co-op instance still get prompted to create a new account.

@xNul
Copy link
Owner

xNul commented Jan 22, 2024

There's a known bug that Windows creates different GUIDs than Linux so moving a save from Windows to Linux or Linux to Windows will force all players to create new characters.

@Essence1720 does SteamCMD use Linux? If so, this is probably what's happening to you. It's not the script afaik, it's moving a save from Windows to Linux.

@Essence1720
Copy link

Essence1720 commented Jan 22, 2024

@xNul Interesting, I installed SteamCMD via the Windows setup executable and was under the assumption it just runs the Steam client in a command line form. I know there is a distribution for Linux too.

If the GUID bug was happening here then I'm not sure I was able to use the script to get my host co-op profile successfully moved over to the dedicate server instance but not the additional players. I would assume it'd be an all or nothing scenario?

@xNul
Copy link
Owner

xNul commented Jan 22, 2024

@Essence1720 oh, you're probably right, I've never used it before. This person #4 (comment) mentions SteamCMD has a slightly different dedicated server which causes issues. If you use the "Palworld Dedicated Server" found in your Steam library (Steam -> Library -> drop down above the search bar -> select the Tools option) it should work without a problem because it's the method I'm using.

If you still have issues after that, you can manually modify the script to move each player's data to a new character. (I explain more at the bottom of the README)

@KilluaAoki
Copy link

@xNul
In my dedicated server, the player data of the host has been fixed, thank you! However, other players besides the host cannot connect to the dedicated server (excluding network issues). I realized that the data of other players might be corrupted. I attempted to patch other players based on the README file, but when executing the CMD, it complains that it cannot find the player's data file. I suspect that the old 'GUID' and the new 'GUID' for other players might be the same, causing the file loss. Is there a solution for this? (Forgive me for using CHATGPT for translation.)

@xNul
Copy link
Owner

xNul commented Jan 22, 2024

@KilluaAoki old and new GUIDs can't be the same (technically there is a crazy small chance). Are you sure you're using the save with the new character the player has created? That error means the save file for the new character can't be found. Another possibility is that the new GUID you used isn't the one on the name of the file. It should look like E819BA7000000000000000000000000000.

If none of that helps, I'll need your error logs, the command you used, and a list of the .sav files in the Players folder

@KilluaAoki
Copy link

@xNul
I updated the archives on the collaborative host and made sure that all other players could connect before copying them to the dedicated server. After all players reconnected, I patched the host, and finally, all players successfully entered the game. Thank you!

@Katou-Kouseki
Copy link

@xNul I updated the archives on the collaborative host and made sure that all other players could connect before copying them to the dedicated server. After all players reconnected, I patched the host, and finally, all players successfully entered the game. Thank you!

Please tell me how exactly it is done? I was able to enter the game. I used this script for non-host players. When the non-host players who adjusted the save file entered, the dedicated server crashed and exited.

@Wolfedelic
Copy link

Wolfedelic commented Jan 22, 2024

So I spent the last 5-6 hours debugging with a friend why GUIDs aren't kept the same, as far as I can tell it's nothing to do with Linux to Windows. I have a Windows PC and and Windows pc acting as a server and the coop save came from a Windows pc.

On my server pc, I installed via SteamCMD, resulted in GUID mismatch
Over Windows fileshare, I ran the server on my pc and the GUIDs matched
Installed on my pc via Steam and GUIDs matched.
Overwrote the SteamCMD install with the Steam install from PC and mismatch

The solution ended up being simply installing Steam on the server pc. I didn't even log in but once Steam installed, the server with absolutely no changes starts matching the original GUIDs. I confirmed this with a friend and their similar setup as well as in a VM

So installing Steam without the requirement of logging in seems to be a required step for matching GUIDs if you want to install via SteamCMD

@ajacker
Copy link

ajacker commented Jan 23, 2024

this may cause by the other problem,if some one exit guild,and not all members are online,then the members who are offline's player save will be broken

@qxforever
Copy link

So I spent the last 5-6 hours debugging with a friend why GUIDs aren't kept the same, as far as I can tell it's nothing to do with Linux to Windows. I have a Windows PC and and Windows pc acting as a server and the coop save came from a Windows pc.

On my server pc, I installed via SteamCMD, resulted in GUID mismatch Over Windows fileshare, I ran the server on my pc and the GUIDs matched Installed on my pc via Steam and GUIDs matched. Overwrote the SteamCMD install with the Steam install from PC and mismatch

The solution ended up being simply installing Steam on the server pc. I didn't even log in but once Steam installed, the server with absolutely no changes starts matching the original GUIDs. I confirmed this with a friend and their similar setup as well as in a VM

So installing Steam without the requirement of logging in seems to be a required step for matching GUIDs if you want to install via SteamCMD

Thanks for sharing! It's really help me to fix my save. I have hosted servers on different platforms:

  1. PC A: Linux, installed via SteamCMD.
  2. PC B: Windows, installed via SteamCMD. Has installed Steam before.
  3. PC C: same as PC B.
  4. PC D: Windows, installed via SteamCMD. Has NOT installed Steam.

The result is that GUIDs of A, B, C are same, PC D is different. After I installed Steam on PC D and login in with my account, PC D becomes same with A, B, C.

Hope this information useful. @xNul

@xNul
Copy link
Owner

xNul commented Jan 24, 2024

@qxforever very useful! Thanks for running this test! Does PC A also have Steam installed? Also, how do the GUIDs look without SteamCMD? I'm using the Palworld Dedicated Server tool for example, which is found in your Steam library (Steam -> Library -> drop down above the search bar -> select the Tools option)

@xNul
Copy link
Owner

xNul commented Jan 24, 2024

To all the other people in here still having issues, I've updated the README to explain how to fix the save when there are multiple players who are unable to access their characters

@xNul xNul added the tech-support Issues making technical errors or asking for technical support on how to use the script. label Jan 24, 2024
@arthurbarret0
Copy link

arthurbarret0 commented Jan 24, 2024

To all the other people in here still having issues, I've updated the README to explain how to fix the save when there are multiple players who are unable to access their characters

I have a save on Windows (co-op), and I want to send it to a dedicated Linux server, which guide should I follow?

I mean, currently there are these 3 options:

  1. How to migrate a co-op save to a Windows dedicated server
  2. How to migrate a Windows/Linux dedicated server save to a Linux/Windows dedicated server
  3. How to migrate a Windows dedicated server save to co-op

@sandtechnology
Copy link

sandtechnology commented Jan 24, 2024

To all the other people in here still having issues, I've updated the README to explain how to fix the save when there are multiple players who are unable to access their characters

I have the same problem and found that it actually depends on whether the steam client library was loaded successfully, it seems change something (appid?) result in generating different guid for player save file name, so just keep the same state (if the steam client library was loaded) will completely done a safe data migrating.

If you have the message like "Setting breakpad minidump AppID = 2394010" on console then it means the steam library is loaded, both windows and linux server have this can migrate the savedata safely without any data loss and external changes.

If this message not appeared on the console, you need to delete steamclient.so on the linux server (linux64, .steam folder and steamclient.so in the server dir) to made it unable to load steam client library for migrating data from windows server, And vice versa.

EDIT: The official tutorial also mentioned something related to that in the hosting guide:
image

@GalileoFe
Copy link

with Your helps, I almost solve this problem, but I had no time to translate my Tutorio to English, So I apologize to you. If you understand Chinese, you can translate it. thanks~

https://github.com/GalileoFe/PalWorld-Save-Movement-Complete-Tutorio/tree/main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tech-support Issues making technical errors or asking for technical support on how to use the script.
Projects
None yet
Development

No branches or pull requests