이 가이드는 API 키 등록, 첫 시작, Game.ini 구성, 게임 모드, 맵 로테이션, 연결 방법 등 Legion Hosting에서 Pavlov VR 전용 서버를 설정하는 방법을 다룹니다. Workshop 맵 설정은 Pavlov VR Workshop 맵을 참조하세요. RCON 및 관리자 명령어는 Pavlov VR 관리자 명령어를 참조하세요.
API 키 발급받기
서버가 공개 서버 브라우저에 표시되려면 Pavlov API 키가 필수입니다. 유효한 키가 없으면 플레이어는 게임 내 서버 목록을 통해 서버를 찾을 수 없습니다.
- 헤드셋에서 Pavlov VR을 실행합니다.
- Settings를 열고 General 탭으로 이동합니다.
- Generate Server Code 버튼을 클릭합니다. 이것은 15분 동안 유효한 6자리 코드를 생성합니다.
- 컴퓨터나 휴대폰에서 pavlov-ms.vankrupt.com/servers/v1/key를 방문합니다.
- 6자리 코드를 입력하고 메시지가 표시되면 SMS를 통해 본인 인증을 합니다.
- 생성된 API 키를 복사합니다. 비밀번호 관리자와 같은 안전한 곳에 보관하세요.
첫 시작
Legion Hosting에서 Pavlov VR 서버를 구매한 후, 다음 단계에 따라 처음으로 실행합니다:
- GPanel에 로그인하고 Pavlov VR 서버를 선택합니다.
- Startup 탭으로 이동합니다.
- 필수 시작 변수를 구성합니다:
- API_KEY -- 이전 단계에서 발급받은 API 키를 붙여넣습니다. 서버 브라우저 목록에 표시되려면 필수입니다.
- RCON_PASSWORD -- 원격 콘솔 접근을 위한 강력한 비밀번호를 설정합니다. 기본값은
CHANGE_ME이며, 시작하기 전에 반드시 변경해야 합니다.
- 선택적 시작 변수를 검토합니다:
- RCON_PORT -- RCON 연결에 사용되는 포트입니다. 변경할 특별한 이유가 없으면 기본값으로 두세요.
- SRCDS_BETAID -- 안정 릴리스의 경우 비워 두세요. 베타 브랜치를 실행하려면
beta_server로 설정합니다.
- Console 탭으로 이동하여 Start를 클릭합니다.
- 서버가 Pavlov 전용 서버 파일을 다운로드하고 기본 구성 파일을 생성합니다. 첫 실행 시 몇 분이 걸릴 수 있습니다.
- 서버 시작이 완료되면 중지하여 구성 커스터마이징을 시작합니다.
| 시작 변수 | 기본값 | 필수 | 설명 |
|---|---|---|---|
API_KEY |
-- | 예 | pavlov-ms.vankrupt.com에서 받은 Pavlov API 키입니다. 서버 브라우저 목록에 표시되려면 필수입니다. |
RCON_PASSWORD |
CHANGE_ME |
예 | RCON 접근용 비밀번호입니다. 서버를 시작하기 전에 기본값에서 변경하세요. |
RCON_PORT |
-- | 아니요 | RCON 연결용 TCP 포트입니다. 할당된 포트는 GPanel Network 탭에서 확인하세요. |
SRCDS_BETAID |
-- | 아니요 | 베타 브랜치를 사용하려면 beta_server로 설정합니다. 안정 버전의 경우 비워 두세요. |
beta_server 브랜치에는 최신 기능과 버그 수정이 포함될 수 있지만 불안정성을 유발할 수도 있습니다. 베타 기능이 특별히 필요한 경우가 아니라면 프로덕션 서버에는 안정 브랜치를 사용하세요.
Game.ini 구성
Pavlov VR 서버의 기본 구성 파일은 Game.ini이며, 위치는 다음과 같습니다:
Pavlov/Saved/Config/LinuxServer/Game.ini
GPanel Files 탭을 사용하여 이 파일을 엽니다. 모든 설정은 [/Script/Pavlov.DedicatedServer] 섹션 헤더 아래에 들어갑니다.
최소 작동 구성
[/Script/Pavlov.DedicatedServer]
bEnabled=true
ServerName=My Legion Pavlov Server
MaxPlayers=10
bSecured=true
bCustomServer=true
bCompetitive=false
bWhitelist=false
MapRotation=(MapId="datacenter", GameMode="SND")
MapRotation=(MapId="sand", GameMode="TDM")
MapRotation=(MapId="bridge", GameMode="DM")
전체 구성 예제
다음 예제는 일반적으로 사용되는 모든 설정을 보여줍니다:
[/Script/Pavlov.DedicatedServer]
bEnabled=true
ServerName=My Legion Pavlov Server
MaxPlayers=10
bSecured=true
bCustomServer=true
bCompetitive=false
bVerboseLogging=false
bWhitelist=false
RefreshListTime=120
LimitedAmmoType=0
TickRate=90
TimeLimit=60
AFKTimeLimit=300
#Password=1234
MapRotation=(MapId="datacenter", GameMode="SND")
MapRotation=(MapId="sand", GameMode="TDM")
MapRotation=(MapId="bridge", GameMode="DM")
MapRotation=(MapId="station", GameMode="GUN")
MapRotation=(MapId="containeryard", GameMode="TTT")
주요 설정 참조
| 설정 | 예시 값 | 설명 |
|---|---|---|
bEnabled |
true |
전용 서버가 연결을 수락하려면 true여야 합니다. |
ServerName |
My Legion Pavlov Server |
게임 내 서버 브라우저에 표시되는 이름입니다. 플레이어가 찾을 수 있도록 설명적으로 만드세요. |
MaxPlayers |
10 |
최대 플레이어 수입니다. PC는 최대 24명(일부 모드에서는 그 이상)을 지원합니다. 서버 플랜에 맞게 설정하세요. |
bSecured |
true |
EAC(Easy Anti-Cheat)를 활성화합니다. 치팅을 방지하기 위해 공개 서버에서는 true로 설정하세요. |
bCustomServer |
true |
모딩 도구, 저장/HTTP 기능, 차단을 위한 blacklist.txt 쓰기를 포함한 커스텀 서버 기능을 활성화합니다. 대부분의 서버에 권장됩니다. |
bCompetitive |
false |
경쟁 모드를 활성화합니다. SND(Search and Destroy)에만 적용됩니다. |
bWhitelist |
false |
true일 때 whitelist.txt에 등록된 플레이어만 서버에 참여할 수 있습니다. |
Password |
1234 |
서버를 비밀번호로 보호하는 숫자 PIN입니다. 공개 서버의 경우 이 줄을 주석 처리하거나 제거하세요. |
TickRate |
90 |
서버 틱 레이트입니다. 최소 안정 값은 약 50, 최대는 약 120입니다. 값이 높을수록 히트 등록이 향상되지만 더 많은 CPU를 사용합니다. 대부분의 서버에는 기본값 90이 적합합니다. |
TimeLimit |
60 |
맵당 시간 제한(초)입니다. TDM 및 DM과 같은 시간 기반 모드에만 적용되며, 라운드 기반 로직을 가진 모드(SND, TTT)는 자체 타이머를 사용합니다. |
AFKTimeLimit |
300 |
유휴 플레이어가 추방되기까지의 시간(초)입니다. 비활성화하려면 0으로 설정하세요. |
LimitedAmmoType |
0 |
탄약 모드: 0 = 무제한 탄창, 1 = 제한된 탄약, 2 = 박스 없음(제한된 탄창, 재보급 없음). |
RefreshListTime |
120 |
서버가 whitelist.txt, blacklist.txt, mods.txt를 다시 확인하는 주기(초)입니다. |
bVerboseLogging |
false |
상세 로깅을 활성화합니다. 디버깅에 유용하지만 성능에 영향을 줄 수 있습니다. |
MapRotation |
(MapId="datacenter", GameMode="SND") |
로테이션의 맵과 게임 모드를 정의합니다. 전체 로테이션을 위해 여러 줄을 추가하세요. 아래 게임 모드 및 맵 로테이션 섹션을 참조하세요. |
게임 모드
Pavlov VR은 다양한 게임 모드를 지원합니다. MapRotation 항목의 GameMode 필드에 약어 코드를 사용하세요.
| 코드 | 게임 모드 | 설명 |
|---|---|---|
SND |
Search and Destroy | 라운드 기반 목표 모드입니다. 공격자는 폭탄 설치 지점 중 한 곳에 폭탄을 설치하고, 수비자는 설치를 막거나 해제해야 합니다. 라운드당 한 번의 생명. |
DM |
Deathmatch | 개인전입니다. 모든 무기는 구매 휠을 통해 사용할 수 있습니다. 타이머가 끝나기 전에 가장 많이 처치한 플레이어가 승리합니다. |
TDM |
Team Deathmatch | 두 팀(NATO 대 러시아)이 현대 무기로 가장 많은 처치를 두고 경쟁합니다. 짧은 리스폰 타이머. |
GUN |
Gun Game | 각 처치마다 미리 정의된 목록의 다음 무기로 진행합니다. 마지막 무기로 처치를 달성한 첫 번째 플레이어가 승리합니다. |
WW2GUN |
WW2 Gun Game | 제2차 세계대전 시대 무기만 사용하는 Gun Game 변형입니다. |
OITC |
One in the Chamber | 모든 플레이어가 한 발의 총알로 스폰됩니다. 처치하면 또 다른 총알을 얻습니다. 칼은 항상 백업으로 사용할 수 있습니다. |
TTT |
Trouble in Terrorist Town | 사회적 추리 모드입니다. 배신자는 발각되지 않고 무고한 사람들과 보안관을 처치해야 합니다. 무고한 사람들은 배신자를 식별하고 제거해야 합니다. |
KOTH |
King of the Hill | 팀이 맵의 중앙 지점을 차지하기 위해 경쟁합니다. 언덕을 계속 통제하여 점수를 얻습니다. |
ZWV |
Zombie Wave Survival | 협동 모드입니다. 플레이어는 함께 협력하여 AI 좀비의 웨이브에서 생존합니다. 라운드 사이에 현금을 벌어 무기를 구입합니다. |
HIDE |
The Hidden | 비대칭 모드입니다. 향상된 이동성과 열화상 시야를 가진 거의 보이지 않는 괴물 한 명이 무장한 특수부대를 사냥합니다. |
INFECTION |
Hidden Infection | 제거된 플레이어가 사망 시 괴물 팀에 합류하는 The Hidden 변형입니다. |
PUSH |
Push | 선형 목표 모드입니다. 공격자는 순차적인 목표를 통해 진격하고 수비자는 방어선을 지킵니다. |
PH |
Prop Hunt | 한 팀은 맵의 물체로 숨고 다른 팀은 그들을 사냥합니다. 모든 맵에서 지원되지는 않습니다. |
TANKTDM |
WW2 Team Deathmatch | WW2 무기를 사용하는 TDM입니다. 지원하는 맵에서는 탱크가 스폰됩니다. |
맵 로테이션
맵 로테이션은 Game.ini에서 여러 MapRotation 줄을 사용하여 정의됩니다. 경기가 끝나면 서버는 로테이션의 다음 맵을 로드하고, 끝에 도달하면 첫 번째 항목으로 다시 돌아갑니다.
형식
MapRotation=(MapId="<map_name_or_ugc_id>", GameMode="<mode_code>")
기본 맵을 사용한 로테이션 예제
MapRotation=(MapId="datacenter", GameMode="SND")
MapRotation=(MapId="sand", GameMode="TDM")
MapRotation=(MapId="bridge", GameMode="DM")
MapRotation=(MapId="containeryard", GameMode="KOTH")
MapRotation=(MapId="station", GameMode="TTT")
MapRotation=(MapId="santorini", GameMode="GUN")
MapRotation=(MapId="bunker", GameMode="PUSH")
MapRotation=(MapId="siberia", GameMode="TDM")
내장 맵 이름
| 맵 ID | 맵 이름 | 비고 |
|---|---|---|
datacenter | Data Center | 긴 복도가 있는 대칭형 실내 맵입니다. 대부분의 모드를 지원합니다. |
sand | Sand | CS Dust에서 영감을 받은 중동 테마입니다. 대부분의 모드를 지원합니다. |
bridge | Bridge | 유럽 운하 도시입니다. SND, TDM, DM에 적합합니다. |
station | Station | 다층 레이아웃의 지하철입니다. |
containeryard | Container Yard | 산업 환경입니다. Prop Hunt를 지원합니다. |
santorini | Santorini | 그리스 섬 마을입니다. |
siberia | Siberia | 눈으로 덮인 야외 맵입니다. |
industry | Industry | 산업 단지입니다. |
bunker | Bunker | 좁은 벙커 내부입니다. |
foundation | Foundation | 건설 현장입니다. |
hospital | Hospital | 실내 병원 레이아웃입니다. |
carnival | Carnival | 카니발 테마 맵입니다. |
killhouse | Killhouse | 훈련 코스 맵입니다. 협동 killhouse 모드에 적합합니다. |
range | Firing Range | 표적이 있는 사격 연습장입니다. |
_night를 추가하여 야간 변형을 사용할 수 있습니다. 예를 들어 datacenter_night, sand_night, station_night, siberia_night, santorini_night, industry_night, containeryard_night 등입니다.
UGC 접두사가 붙은 ID를 사용하여 Workshop 맵을 로테이션에 추가할 수도 있습니다. 커스텀 맵을 찾고 추가하는 방법에 대한 자세한 내용은 Pavlov VR Workshop 맵을 참조하세요.
연결 방법
게임 내 서버 브라우저를 통해
- Steam에서 Pavlov VR을 실행합니다.
- 메인 로비에서 게임 내 태블릿 또는 메뉴의 Server Browser를 엽니다.
- (Game.ini의
ServerName에 설정한) 이름으로 서버를 검색합니다. - 서버를 선택하고 Join을 클릭합니다.
Password설정을 통해 PIN을 설정한 경우, 플레이어는 코드를 입력하라는 메시지를 받습니다.
직접 연결을 통해
- Pavlov VR 서버 브라우저를 열고 Direct Connect 옵션을 찾습니다.
- 서버 IP와 게임 포트(GPanel Network 탭에 표시됨)를
IP:Port형식으로 입력합니다.
서버의 IP 주소와 포트는 GPanel Network 탭에 표시됩니다. 자세한 내용은 서버 IP 및 포트 찾는 방법을 참조하세요.
서버가 브라우저에 표시되지 않나요?
- GPanel Startup 탭에 API 키가 올바르게 설정되어 있는지 확인하세요. 이것이 가장 흔한 원인입니다.
- Game.ini에
bEnabled=true가 있는지 확인하세요. - GPanel의 콘솔 출력을 검토하여 서버가 완전히 시작되었는지 확인하세요.
- 몇 분 기다리세요. 마스터 서버 목록이 업데이트되는 데 시간이 걸릴 수 있습니다.
- 브라우저 인덱싱 지연을 배제하기 위해 직접 IP를 통해 연결을 시도하세요.
관련 문서
도움이 필요하신가요?
여기서 다루지 않은 문제가 발생하면 지원팀이 도와드립니다.