KeepWorlds

팰월드 전용 서버 만들기: 구축부터 월드 설정까지

팰월드 전용 서버를 처음부터 만드는 방법입니다. 사양 선택, SteamCMD 설치, 열어야 하는 포트, PalWorldSettings.ini에서 먼저 바꿀 항목, 세이브 백업과 업데이트까지 정리했고 호스팅에 맡겼을 때와의 차이도 비교합니다.

같은 사람들과 오래 『팰월드』를 하려면 결국 전용 서버가 필요해요. 누군가 게임을 계속 켜 두지 않아도 월드는 24시간 돌아가고, 거점과 팰은 모두가 접속을 끊은 동안에도 계속 일해요. 이 글에서는 사양 선택부터 서버 설치, 포트 개방, 먼저 손봐야 할 설정, 세이브를 지키는 방법까지 한 번에 다루고, 마지막에 직접 운영할 때와 맡길 때의 비용을 비교할게요.

멀티플레이 방식부터 제대로 고르기

『팰월드』의 멀티플레이에는 세 가지 경로가 있고, 게임 안에서 서로 다른 입구이며 할 수 있는 것도 달라요. 막히는 분들은 대개 초대 코드 경로를 골랐다가, 호스트가 나가면 월드도 멈춘다는 걸 나중에 알게 돼요.

방식월드를 돌리는 주체호스트가 종료하면최대 인원어울리는 경우
초대 코드 / 친구 월드 참가호스트의 클라이언트월드 정지4명하룻밤만 같이
같은 PC에서 호스트호스트의 PC월드 정지32명사실상 솔로
전용 서버독립된 머신월드가 계속 돌아감32명고정 멤버로 오래

전용 서버의 입구는 타이틀 화면의 멀티 플레이 참가하기(전용 서버) 예요. 괄호 안이 핵심이라, 초대 코드 경로로는 전용 서버에 접속할 수 없어요. 클라이언트의 입력란은 하나뿐이라 203.0.113.10:8211 처럼 주소와 포트를 붙여서 입력해요.

어느 정도 사양이 필요할까

팰월드 서버는 CPU보다 메모리를 훨씬 많이 써요. 월드를 무겁게 만드는 건 동시 접속 인원이 아니라 월드에 쌓인 거점과 팰의 수예요. 3주째부터 버벅이기 시작했다면 거의 이 경우예요.

동시 접속CPU메모리디스크
2~4명2코어8 GB30 GB
4~8명4코어16 GB40 GB
8~16명4~8코어24 GB 이상60 GB

몇 가지 기준이에요.

  • 메모리는 인원이 아니라 월드 규모로 잡아요. 같은 4명이라도 한 달 굴린 월드는 새 월드보다 몇 GB를 더 써요.
  • 디스크는 세이브 증가분과 백업 자리를 남겨 둬요. 세이브 자체는 작지만, 이력을 여러 벌 남기고 싶어질 거예요.
  • 코어 수보다 단일 코어 성능이에요. 서버의 메인 루프가 여러 코어를 다 쓰지 못해서, 클럭이 높은 쪽이 체감이 좋아요.
  • OS는 Ubuntu 22.04나 Debian 12 어느 쪽이든 괜찮아요. 아래는 리눅스 기준이고, 윈도우도 절차는 같으며 설정 경로만 WindowsServer로 바뀌어요.

직접 구축하기: SteamCMD부터 첫 접속까지

SteamCMD와 의존 패키지 설치

서버가 32비트 라이브러리를 필요로 해서, 데비안 계열에서는 i386 아키텍처를 먼저 켜요.

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1 xdg-user-dirs

root 대신 전용 일반 사용자로 돌리는 걸 권해요.

sudo useradd -m -s /bin/bash palserver
sudo -iu palserver

서버 내려받기

전용 서버의 App ID는 2394010 이에요. 게임 본편(1623730)과 다른 번호라는 점에 주의하세요.

steamcmd +force_install_dir ~/palworld \
         +login anonymous \
         +app_update 2394010 validate \
         +quit

익명 로그인으로 충분해요. 서버 쪽에는 Steam 계정이 필요 없고 보유한 게임 라이선스도 쓰지 않아요. 다만 접속하는 사람은 각자 Steam에서 팰월드를 정품으로 갖고 있어야 해요.

한 번 실행해서 설정 파일 만들기

cd ~/palworld
./PalServer.sh

로그에 Setting breakpad minidump AppID 가 뜨고 십몇 초 기다린 뒤 Ctrl+C 로 멈춰요. 이 첫 실행의 목적은 기본 설정 파일을 깔아 두는 것뿐이에요.

월드 설정 편집하기

실제로 적용되는 파일은 여기예요.

~/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

첫 실행으로 생기는 파일은 껍데기라, 기본값을 덮어쓴 뒤에 편집해요.

cp ~/palworld/DefaultPalWorldSettings.ini \
   ~/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

형식에 함정이 있어요. 모든 항목이 OptionSettings=(...) 괄호 안 한 줄에 쉼표로 나열돼요. 줄바꿈을 넣을 수 없고 문자열 값은 큰따옴표로 감싸요. 편집 전에 사본을 하나 남겨 두세요.

반드시 정해야 하는 항목이에요.

항목설명
ServerName목록에 보이는 서버 이름
ServerPassword서버 비밀번호. 비워 두면 누구나 들어와요
AdminPassword관리자 비밀번호. 반드시 설정하세요. 없으면 관리 명령이 아무에게나 통해요
ServerPlayerMaxNum인원 상한. 머신이 감당할 범위를 넘기지 마세요
PublicPort공개 포트. 기본값 8211
RESTAPIEnabled관리용 API 사용 여부. 기본값은 꺼짐

먼저 조정해 두면 좋은 항목이에요.

항목기본값권장
DeathPenalty전부 드롭고정 멤버라면 소지품만. 사고 한 번이 한 사람을 그만두게 만들 수 있어요
ExpRate1.0주 2회 정도 모이는 팀이라면 1.5~2.0이 맞아요
PalCaptureRate1.0도감을 빨리 채우고 싶으면 올려요
DropItemMaxNum3000드롭 상한을 낮추면 월드 부담이 줄어요
AutoSaveSpan30분10~15분으로 줄이면 사고가 났을 때 덜 잃어요
bIsMultiplayFalse전용 서버에서는 False 그대로. 같은 PC 호스트용 항목이에요

저장한 뒤 서버를 다시 켜면 반영돼요.

포트 열기

이 단계를 빠뜨리면 "서버 로그는 멀쩡한데 아무도 못 들어와요" 가 돼요. 가장 흔한 막힘 지점이에요.

포트프로토콜용도필수
8211UDP게임 통신필수
27015UDPSteam 쿼리(서버 목록)선택
8212TCP공식 REST 관리 API선택

실수는 대부분 이 둘이에요.

  • 8211은 UDP이지 TCP가 아니에요. TCP만 열면 포트 스캔에는 "열림" 으로 보이는데 게임은 접속되지 않아요.
  • 클라우드 머신이라면 사업자의 보안 그룹과 OS 방화벽(ufw / firewalld)을 둘 다 열어야 통해요.

관리 API에 대해 하나 더 짚을게요. 공식은 REST API를 인터넷에 직접 노출하지 말라고 명시적으로 경고하고 있어요. 쓸 거라면 내부 주소에 바인딩하거나 방화벽으로 접속 출처를 제한하세요. 그리고 팰월드의 RCON은 공식적으로 지원 중단되었고 앞으로 동작하지 않을 것이라고 공지됐어요. RCON 설정을 알려 주는 오래된 글은 넘겨도 돼요.

자동 시작으로 만들기

수동으로 켠 서버는 터미널을 닫으면 같이 꺼져요. systemd 유닛을 만들어요.

[Unit]
Description=Palworld Dedicated Server
After=network-online.target

[Service]
Type=simple
User=palserver
WorkingDirectory=/home/palserver/palworld
ExecStart=/home/palserver/palworld/PalServer.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

/etc/systemd/system/palworld.service 로 저장하고 실행해요.

sudo systemctl daemon-reload
sudo systemctl enable --now palworld
sudo journalctl -u palworld -f

세이브 위치와 백업

세이브 경로예요.

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

<WorldID> 는 16진수 디렉터리 이름이고 월드마다 하나씩 생겨요. 백업은 이 디렉터리를 통째로 복사하는 거예요.

돌아가는 중인 세이브를 그대로 복사하지 마세요. 쓰다 만 파일을 가져올 수 있고, 그 사실은 복원하려는 날에야 드러나요. 순서는 서버가 먼저 기록을 마치게 하고(정지하거나 관리 API로 강제 저장), 그다음에 복사하는 거예요.

실제로 쓸 만한 백업은 이런 모양이에요.

  • 하루 한 벌, 7일 보관
  • 게임 업데이트 직전에 손으로 한 벌 더
  • 서버와 같은 디스크에는 두지 않기

세이브 손실은 이런 서버에서 유일하게 되돌릴 수 없는 장애예요. 날짜가 들어간 디렉터리 이름과 되돌릴 수 있는 이력이 어떤 튜닝보다 값져요.

업데이트 후에 아무도 못 들어와요

클라이언트는 알아서 업데이트되지만 서버는 아니에요. 공식 패치가 나오는 순간 전원이 접속 화면에서 멈춰요. 서버 버전이 뒤처진 것이 "갑자기 전원 접속 불가" 의 1위 원인이에요.

순서는 이래요.

sudo systemctl stop palworld
# 세이브를 먼저 백업하고 나서 업데이트해요
sudo -iu palserver steamcmd +force_install_dir ~/palworld \
     +login anonymous +app_update 2394010 validate +quit
sudo systemctl start palworld

백업이 먼저, 업데이트가 나중이에요. 순서를 바꾸지 마세요.

자주 묻는 것들

서버 목록에 안 뜨는데 주소로는 들어가져요. 흔한 상태예요. 커뮤니티 서버 목록 자체가 불안정하니 주소를 공유해서 직접 접속하면 돼요.

몇 명 들어오면 버벅여요. 먼저 메모리가 꽉 찼는지 보고, 그다음 월드의 거점 수를 보세요. 그만둔 사람이 남긴 거점을 정리하면 프레임률이 눈에 띄게 돌아오는 경우가 많아요.

설정을 바꿨는데 적용이 안 돼요. 십중팔구 파일을 잘못 고친 거예요(Pal/Saved/Config/ 아래가 아니라 DefaultPalWorldSettings.ini 를 편집). 아니면 에디터가 긴 OptionSettings=(...) 줄을 접어 버린 경우예요.

강퇴나 차단을 하고 싶어요. 관리 API를 켜고 AdminPassword 를 설정한 뒤, 표시 이름이 아니라 userId 를 대상으로 해요. 이름은 바꿀 수 있으니까요.

직접 운영할까, 맡길까

직접 구축하는 쪽의 비용은 첫날이 아니라 그 뒤 매주에 있어요.

직접 운영호스팅
처음 띄우기까지30분~2시간몇 분
공식 업데이트직접 정지·업데이트·재시작저희가 처리
매일 백업스크립트도, 복원 검증도 직접자동, 복원도 가능
새벽에 죽었을 때일어나서 처리자동 재시작과 알림
월드 설정 변경ini 편집 후 재시작웹 폼, 변경 후 자동 재시작
메모리 증설 / 머신 교체다시 설치관리 화면에서 처리

기준은 하나예요. 매주 두 시간을 여기에 쓸 생각이 있는지. 있다면 직접 구축은 충분히 현실적이고 위 절차로 끝나요. 없다면 그 두 시간이 바로 호스팅 서비스가 파는 것이에요.

KeepWorlds 가 맡는 건 오른쪽 열이에요. 게임과 요금제를 고르고 주문하면 전용 머신 위에 서버가 올라가요. 다른 이용자와 나눠 쓰지 않아요. 백업과 게임 업데이트, 기한 알림은 저희가 챙길게요. 올라간 뒤에는 콘솔내 서버에서 접속 주소와 접속 인원, 동작 상태를 확인할 수 있어요. 주소는 한 번에 복사되고, 페이지의 안내대로 접속하면 돼요.

막상 써 보고 맞지 않으면 환불 정책에 따라 처리해 드려요. 다른 문의는 각 페이지의 지원팀 창구로 연락 주세요.

다른 언어로 보기

직접 운영하지 않아도 돼요

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

지원 게임 보기