NOTA: ESTE GUIA NÃO É PARA COOP PARA SERVIDOR DEDICADO!
Ao transferir dados salvos do servidor dedicado Steam para Linux SteamCMD, um problema comum é que os jogadores’ os dados serão perdidos, neste guia irei fornecer uma possível razão para esse fenômeno e as etapas para transferir corretamente os dados salvos.
Pré-requisitos
Servidor Linux com servidor dedicado SteamCMD e Palworld instalado, você deve ser capaz de iniciar o servidor e ingressar nele.
TL;RD
- Copie sua pasta salva de …\SteamLibrarysteamappscommonPalServerPalSavedSaveGames{SEU_SAVE_ID} no Windows.
- Cole sua pasta de salvamento em .steam/SteamApps/common/PalServer/Pal/Saved/SaveGames/0/{SEU_SAVE_ID}.
- Modificar NomeDeServidor Dedicado no .steam/SteamApps/common/PalServer/Pal/Saved/Config/LinuxServer/GameUserSettings.ini para SEU_SAVE_ID.
- Criar pasta .vapor/sdk64 (mkdir -p ~/.steam/sdk64).
- cópia de .steam/steamcmd/linux64/steamclient.so para .steam/sdk64/steamclient.so.
- Modificar (ou crie se não existir) o conteúdo de .steam/SteamApps/common/PalServer/Binaries/LinuxServer/steam_appid.txt para 1623730.
- Inicie o servidor, se você ver que há algo como “Configurando o minidespejo do breakpad AppID = xxxxxxx” na saída do seu servidor, tudo deveria estar bem.
Causa do problema
O principal problema é que o GUID do player é diferente entre Linux e Windows. Quando você ingressa em um servidor Linux, você não pode obter o mesmo GUID usado anteriormente no Windows, portanto, servidor irá tratá-lo como um novo jogador. Mas por que os GUID são diferentes? Acho que pode estar relacionado à API do Steam e à forma como o palword gera o GUID, os seguintes são apenas meu palpite.
Quando um jogador entra em um servidor palworld, o servidor tentará primeiro usar a API Steam para obter o ID do jogador, e então com base neste ID gere um GUID para o player. No entanto, se a API Steam não estiver disponível, o servidor irá então gerar GUID com base em outras regras/valores desconhecidos. Na plataforma Windows, você inicia um servidor dedicado do Steam, assim, geralmente, A API Steam está sempre disponível e bem configurada, então o GUID é gerado com base no seu Steam ID. Mas na plataforma Linux, você precisa fornecer steamclient.so e steam_appid.txt para disponibilizar a API Steam. Se você não definiu estes, o servidor irá então gerar GUID com base em algumas regras/valores desconhecidos do jogador, que é totalmente diferente do GUID gerado no Windows.
Para verificar isso, você pode definir AdminPassword em PalWorldSettings.ini, ingressar em um servidor, digite /AdminSenha {SEU_ADMIN_PWD} na caixa de bate-papo para se tornar um administrador, em seguida, pressione ESC e seu ID de usuário será exibido na tela. Você deve descobrir que o valor é diferente entre Linux e Windows para o mesmo player.