데이터 폴더 열기
새 채팅의 작업 폴더로 서버 데이터 폴더를 선택하세요. 에이전트는 list_dir을 사용해 폴더를 나열하므로, 어떤 작업도 진행하기 전에 Saves, Backups, Mods 폴더를 확인할 수 있습니다. Windows PC의 기본 위치는 사용자 AppData\Roaming 폴더 내의 VintagestoryData 폴더이지만, 서버를 다른 데이터 경로로 시작했다면 해당 경로가 적용됩니다.
게임 업데이트가 나왔고, 월드를 잃지 않고 모드와 월드를 최신 상태로 업데이트하고 싶다면 어떨까요? Vintage Story 서버 설정 변경과 모드 추가는 월드 로딩을 막을 수 있는 두 가지 주요 변경 사항입니다. 이 워크플로우는 이를 고정된 순서로 실행합니다: 저장 폴더를 복사한 후, 한 가지 변경 사항을 적용하고 서버를 시작해 로그를 읽은 다음, 다음 변경 사항을 적용합니다. Cascadia Merge는 파일 작업을 처리하고 각 결과를 카드 형태로 보여줍니다. 모든 결정은 당신이 내리며, 파일이 변경되는 동안 서버는 중지된 상태를 유지합니다. 경로 입력에 시간을 쓰기보다 diff와 로그를 읽는 데 시간을 할애하고, 변경 전에 각 모드의 버전을 기록해 두세요. 이렇게 하면 업데이트일의 기록으로 활용할 수 있습니다.
새 채팅의 작업 폴더로 서버 데이터 폴더를 선택하세요. 에이전트는 list_dir을 사용해 폴더를 나열하므로, 어떤 작업도 진행하기 전에 Saves, Backups, Mods 폴더를 확인할 수 있습니다. Windows PC의 기본 위치는 사용자 AppData\Roaming 폴더 내의 VintagestoryData 폴더이지만, 서버를 다른 데이터 경로로 시작했다면 해당 경로가 적용됩니다.
서버가 중지된 상태에서 에이전트는 백업 스크립트를 사용해 Saves 폴더를 Backups 폴더로 복사합니다. 카드에서 종료 코드를 확인하고, Backups 폴더의 두 번째 list_dir을 요청해 새 복사본이 실제로 존재하는지 확인한 후 진행하세요.
serverconfig.json을 수정하거나 모드를 교체하되, 둘을 동시에 하지 마세요. 에이전트는 설정 변경에 대한 diff를 보여주며, Ask first 모드에서 이를 수락하거나 거절할 수 있습니다. 수동으로 교체하는 모드는 .zip 파일로 Mods 폴더에 추가되며, 한 번의 작업당 하나의 파일만 변경됩니다.
자체 스크립트로 서버를 시작하고, 에이전트에게 로그에서 실패한 모드를 검색하게 하세요. 게임에 접속해 테스트합니다. 문제가 발생하면 어떤 변경 사항이 원인인지 알 수 있으며, 시작 시 복사해 둔 파일 중 해당 파일을 이동하거나 해당 줄을 복원할 수 있습니다.
Mods/foundMods/examplemod/modinfo.jsonreadversion Mods/3 matchesmod-list.txtsaved{
"ServerName": "Friends World",
"Port": 42420,
"MaxClients": 10,
"Password": null,
"AllowPvP": false,
"AdvertiseServer": false
}이것은 전체 파일이 아닌 serverconfig.json의 발췌본이며, 플레이스홀더 값만 포함합니다. 게임 포트는 42420(TCP)이며, 비밀번호가 null인 경우 비밀번호가 설정되지 않았음을 의미하므로 인터넷에 월드를 공개하기 전에 비밀번호를 추가하세요. 실제 파일은 서버가 중지된 동안에만 편집하고, Saves 폴더 옆에 사본을 보관하세요.
무언가 변경하기 전에 먼저 확인하세요. 에이전트는 list_dir과 glob을 사용해 데이터 폴더 내의 Mods 폴더를 찾고, 폴더에 있는 각 모드의 modinfo.json을 read_file로 열어 읽습니다. 그런 다음 write_file을 사용해 이름과 버전의 일반 텍스트 목록을 작업 폴더에 저장합니다. 호스팅된 서버의 모드에 도움이 필요하면, 에이전트는 당신이 열 수 있는 파일에서만 작업할 수 있으므로 먼저 데이터 폴더에 접근할 수 있는지 확인하세요. 목록을 출력하세요. 플레이어들이 사용하는 모드와 비교해 보고, 서버와 플레이어가 동일한 모드와 버전을 필요로 하므로 업데이트할 항목을 결정하세요. 아직 변경된 것이 없으며, 업데이트 전에 어떤 것이 설치되어 있었는지 기록이 남아 있어 나중에 단계를 되돌려야 할 때 도움이 됩니다.
월드는 Saves 폴더 내의 단일 .vcdbs 파일입니다. 따라서 모든 게임 업데이트, 모드 변경 및 설정 변경 전에 해당 폴더를 복사하세요. 먼저 서버를 중지하세요. 에이전트는 copy_file을 사용해 월드 파일을 Backups 폴더에 배치하고, Shell은 자체 백업 스크립트를 실행하여 카드에 실제 종료 코드를 보고합니다. 복원되지 않은 복사본은 단지 추측일 뿐이므로, 빈 폴더에 한 번 복원해 열고 월드가 있는지 확인하세요. 그런 다음 파일 변경 작업 부분으로 넘어가세요. 변경이 실패할 경우를 대비해 안전한 복귀 경로를 확보한 상태입니다. 아무것도 삭제하지 않으며, 복사본이 없는 한 저장 폴더는 제거되지 않습니다. 폴더에 여러 월드가 있는 경우, 누락되는 월드가 없도록 전체 Saves 폴더를 복사하세요.
이제 단일 항목만 변경하세요. Vintage Story 서버 설정을 조정하려면 에이전트가 edit_file을 사용해 serverconfig.json을 편집하고 Ask first 모드에서 diff를 보여줍니다. 모드를 업데이트하려면 공식 모드 데이터베이스에서만 새 .zip을 Mods 폴더에 직접 배치하세요. 모드를 설치한 후 월드가 로드되지 않으면 마지막 변경 사항이 의심스럽고, 해당 파일을 다시 이동해 되돌릴 수 있습니다. 여기서 멈추세요. 첫 번째 모드가 테스트될 때까지 두 번째 모드를 추가하지 마세요. 동시에 두 가지 변경을 하면 원인을 파악하기 어렵습니다. Plan only 모드는 실행하지 않고 먼저 단계를 기록할 수 있으므로, 업데이트일에 두 번째 관리자가 읽을 수 있는 체크리스트가 필요한 경우에 유용합니다.
자체 시작 스크립트로 서버를 시작하세요. Shell이 이를 실행하고 실제 종료 코드를 보여주며, grep은 서버 로그에서 failed와 error라는 단어를 검색합니다. 전용 서버의 문제 해결은 해당 로그에서 시작되며, 카드는 모든 일치하는 줄을 나열해 순서대로 읽을 수 있게 합니다. 어떤 로그 파일이 최신인지 확실하지 않다면 glob이 로그 파일을 찾습니다. 다음으로 게임에서 접속해 월드를 돌아다닙니다. 로그가 깨끗하고 두 번째 플레이어가 접속한 후에야 변경 사항을 완료된 것으로 승인하세요. 로그가 깨끗하지 않다면 한 단계 뒤로 돌아가 마지막 오류가 아닌 첫 번째 오류를 읽고, 월드 자체가 손상된 경우 저장 폴더 복사본을 복원하세요.