KeepWorlds

팰월드 세이브 데이터: 저장 위치, 백업, 복원 순서

팰월드 전용 서버가 월드 세이브를 어디에 두는지, 무엇을 복사해야 완전한 백업이 되는지, 플레이어 데이터를 잃지 않고 복원하는 순서, 그리고 다른 머신으로 월드를 옮길 때 주의할 점을 정리했습니다.

팰월드에서 세이브 손상은 드문 사고가 아닙니다. 메모리 부족으로 운영체제가 서버 프로세스를 죽였거나, 전원이 나갔거나, 기록 중에 크래시가 났다면 몇 달 돌린 월드가 열리지 않을 수 있습니다. 게다가 이 게임에는 되돌리기 기능이 없습니다. 깨진 세이브는 그냥 깨진 것입니다.

그래서 팰월드에서 백업은 다른 게임보다 무겁습니다. 이 글은 세이브의 위치, 완전한 백업에 무엇이 들어가는지, 그리고 올바른 복원 순서를 다룹니다.

세이브 데이터의 실제 위치

서버 설치 경로(구축 순서대로 했다면 ~/palworld) 아래입니다.

Pal/Saved/SaveGames/0/<WorldID>/

<WorldID>는 32자리 16진 문자열이고 서버가 처음 실행될 때 생성됩니다. 이 디렉터리 이름은 장식이 아닙니다. 뒤의 이전 절에서 핵심이 됩니다.

안에는 이런 것들이 있습니다.

파일담고 있는 것
Level.sav월드 본체. 지형 변경, 모든 건축물, 거점, 배치한 팰. 가장 큰 파일이고 오래 굴린 월드라면 수백 MB는 예사입니다
LevelMeta.sav월드 메타데이터
WorldOption.sav월드 설정의 스냅숏
Players/플레이어마다 .sav 하나. 파일 이름이 그 플레이어의 UID입니다

완전한 백업에 들어가는 것

<WorldID>/ 디렉터리 전체입니다. 하나도 빠지면 안 됩니다.

이 절이 글의 핵심입니다. 흔한 실패는 백업을 안 하는 게 아니라 하긴 했는데 불완전한 것이기 때문입니다. 인터넷의 많은 안내가 Level.sav만 언급해서, 그 파일 하나만 갖고 있는 경우가 대단히 많습니다.

Level.sav만 있는 백업으로 되돌리면 "조금 모자란" 정도로 끝나지 않습니다. 전원이 새 캐릭터가 됩니다. 월드도 있고 거점도 있고 팰도 있습니다. 그런데 그 거점들은 더 이상 존재하지 않는 UID의 것이고, 아무도 자기 캐릭터를 되찾을 수 없습니다. 레벨도 특성도 소지품도 사라진 채 월드만 멀쩡해 보입니다. 절반짜리 백업은 없는 것보다 나쁩니다. 있다고 믿은 만큼 더 아픕니다.

Players/도 반드시 함께 복사하세요.

가동 중에 백업하면 생기는 일

쓰다 만 세이브를 잡습니다.

서버는 일정 간격으로 자동 저장하고, Level.sav는 수백 MB짜리 큰 파일이며, 그 기록은 원자적이지 않습니다. 쓰는 도중에 복사하면 앞부분은 새 데이터, 뒷부분은 옛 데이터인 파일이 나옵니다. 대개는 읽히지 않고, 가끔 읽히더라도 월드 상태가 미묘하게 어긋나 있습니다.

올바른 순서는 하나뿐입니다.

# 1. 서버를 정지한다
# 2. <WorldID>/ 디렉터리 전체를 복사한다
# 3. 서버를 시작한다

믿을 수 있는 백업을 위해 수십 초 멈춘다. 이 거래는 세이브가 실제로 깨지는 날 정산됩니다.

정말 멈출 수 없다면 차선책은 RCON으로 Save를 보내고 완료 직후에 복사하는 것입니다. 다만 이건 기록과 겹칠 확률을 낮출 뿐 없애지는 못합니다. 정지 후 백업과 같은 것으로 취급하지 마세요.

복원 순서

순서를 틀리면 플레이어 데이터를 잃습니다. 이대로 하세요.

  1. 서버를 정지합니다. 돌아가는 채로 바꾸면 프로세스 메모리에 있는 내용이 다음 자동 저장 때 덮어씁니다
  2. 지금 있는 세이브도 먼저 복사해 둡니다. 깨졌다고 생각하더라도요. 복원 자체가 실패할 수도 있고, 그때 돌아갈 곳은 이것뿐입니다
  3. 백업의 <WorldID>/ 디렉터리로 기존 것을 교체합니다
  4. 디렉터리 이름을 대조합니다. 백업과 현재 이름이 다르면 다음 절로
  5. 서버를 시작하고 거점과 캐릭터가 모두 있는지 확인합니다

건너뛰기 쉽고 후회하기도 쉬운 건 2번입니다.

다른 머신으로 옮기기

이전에는 복원에 없는 문제가 하나 더 있습니다. 새 머신은 첫 실행에서 자기만의 <WorldID>를 만들기 때문에 백업의 것과 일치하지 않습니다.

어느 월드 디렉터리를 읽을지는 이 파일이 정합니다.

Pal/Saved/Config/LinuxServer/GameUserSettings.ini

여기의 DedicatedServerName= 값이 SaveGames/0/ 아래에서 찾아갈 디렉터리 이름입니다. 그래서 이전 방법은 두 가지이고, 둘 중 하나만 고르면 됩니다.

  • 설정을 바꾼다: DedicatedServerName=을 백업 디렉터리 이름으로
  • 디렉터리 이름을 바꾼다: 백업 디렉터리를 새 머신이 만든 이름으로 변경

어느 쪽이든 되지만 둘 다 하지는 마세요. 서로 어긋나면 서버는 세이브가 없다고 판단해 새 월드를 만들고, 예전 월드는 바로 옆에 멀쩡히 남습니다. 겉보기에는 "세이브가 사라졌다"이지만 실제로는 못 찾은 것뿐입니다.

자주 묻는 질문

Level.sav만 백업하면 되나요? 안 됩니다. Players/에는 각 플레이어의 캐릭터 데이터가 들어 있어서, 이게 없으면 복원 뒤 전원이 새 캐릭터가 됩니다. <WorldID>/ 디렉터리 전체를 복사하세요.

서버를 멈추지 않고 세이브를 복사해도 되나요? 권하지 않습니다. 자동 저장의 기록은 원자적이지 않아서, 쓰는 도중에 복사하면 반쪽짜리 파일을 잡습니다. 믿을 수 있는 백업을 위해 수십 초 멈추는 값어치는 충분합니다.

복원했더니 서버가 새 월드를 만들었습니다. 예전 세이브는 사라진 건가요? 거의 아닙니다. 디렉터리 이름이 맞지 않을 뿐입니다. GameUserSettings.iniDedicatedServerName=SaveGames/0/ 아래 디렉터리 이름이 같아야 하고, 둘 중 한쪽만 고치면 됩니다.

이 과정이 미뤄지는 이유

백업은 성격상 오늘 하고 싶은 일 뒤로 밀립니다. 즉각적인 보상이 없고, 가치가 생기는 건 사고 나는 날뿐인데 그날은 미리 알 수 없기 때문입니다.

진짜 문제는 게으름이 아니라 스스로 기억해야 한다는 점입니다. 매주 손으로 실행하고, 서버를 멈추고, 수백 MB를 복사하는 절차는 세 번이면 끊깁니다. 그리고 세이브 손상은 월드가 몇 달 돌아가 백업이 진작 멈춘 시점을 노린 듯이 찾아옵니다.

콘솔의 백업 기록. 어느 것에서든 복원할 수 있습니다

KeepWorlds팰월드 전용 서버는 정해진 간격으로 자동 백업하고 최근 몇 세대를 보관합니다. 복사하는 건 Players/를 포함한 월드 디렉터리 전체라서, 복원은 목록에서 고르는 일이 됩니다. 월드 용량에 영향을 주는 설정이 궁금하다면 월드 설정 전체 해설을 보세요.

다른 언어로 보기

직접 운영하지 않아도 돼요

게임과 요금제만 고르면 전용 머신에 서버가 올라가요. 백업과 게임 업데이트, 기한 알림은 저희가 챙길게요.

지원 게임 보기