1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

記事投稿キャンペーン 「2024年!初アウトプットをしよう」

パルワールドのサーバをConoHa VPSで建てたので備忘録

Last updated at Posted at 2024-01-27

概要

最近何かと話題になっているパルワールド(英語:Palworld)の専用マルチサーバーをConoHa VPS上で構築する方法を詳しく解説します。

現在はSteam版のみ専用サーバに接続できます。

この記事は中級者以上向けです。
ConoHaのレンタルサーバを用いる場合、ConoHa for GAMEを用いることでより簡単に専門サーバを建てられる可能性があります。

公式ガイド日本語版Q&Aも同時に参照してください。

サーバーの基本構成

- スペック 解説
OS Ubuntu 22.04 好きなものを選んでください
CPU 6コア 公式推奨は4コア以上です
メモリ 8GB 4人以上のプレイなら最低でも8GBは必要
ストレージ SSD 100GB 30GBもあれば問題ないと思います

構築方法

アカウントの追加

まずはパルワールド用にアカウントを作ります。

パルワールドのサーバはrootユーザだと起動できません。

# アカウントの追加
$ sudo useradd -m palworld

パスワードも作っておきます。

# アカウントにパスワードを設定
$ sudo passwd palworld

なお、パスワードを入力するときはターミナル上には何も表示されません。

sudoの付与

ここで追加したユーザーをsudoできるようにしておきます。

# sudo権限の付与
$ sudo usermod --append --groups sudo palworld

アカウント切り替えを行なっておきます。

# アカウントの切り替え
$ su - palworld

SteamCMDの導入

SteamCMDのインストール

規約への同意を求められるので、確認しつつ[OK], [Agree]を順番に押していきます。

# リポジトリの追加
$ sudo add-apt-repository multiverse

# i386アーキテクチャのパッケージを追加
$ sudo dpkg --add-architecture i386

# インストール可能なパッケージの一覧を更新
$ sudo apt update

# SteamCMDをインストール
$ sudo apt install steamcmd

SteamCMDは/usr/games/にインストールされます。

SteamCMDを起動する

SteamCMDのインストール先に移動します。

# ディレクトリの移動
$ cd /usr/games/

SteamCMDを起動します。

# SteamCMDを起動
$ steamcmd

初回起動でアップデートを自動インストールするはずなので待ちます。
Steam>となれば大丈夫です。

パルワールドサーバのインストール

実際にパルワールドのサーバをインストールしていきます。

# anonymousユーザでログイン
Steam> login anonymous 

# パルワールドをインストール
Steam> app_update 2394010 validate 

# SteamCMDを終了
Steam> quit

なお、2394010はパルワールドのSteam内番号です。

サーバーの確認

Steamworks SDK Redist をダウンロードしてコピーします。

# ディレクトリの作成
$ mkdir -p /home/palworld/.steam/sdk64/

# ディレクトリの移動
$ cd /usr/games/

# Steamworks SDK Redistをダウンロード
$ steamcmd +login anonymous +app_update 1007 +quit

# Steamworks SDK Redistをコピー
$ cp /home/palworld/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so /home/palworld/.steam/sdk64/

サーバが起動するか確認

# ディレクトリの移動
$ cd /home/palworld/Steam/steamapps/common/PalServer/

# サーバの起動
$ ./PalServer.sh

以下のような画面になれば完了。Ctrl(⌘)+Cで一旦終了しましょう。

Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.
dlopen failed trying to load:
steamclient.so

with error: steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/palworld/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 3 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
Setting breakpad minidump AppID = 2394010
    
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

ポート解放を行う

サーバを建ててもポート解放をしないと誰も参加できません。
パルワールドはUDPプロトコルで8211番のポートを使用します。

ConoHa VPS以外の方はこちら
# ファイアウォールの有効化
$ sudo ufw enable

8211/udpを許可してあげます。

# 8211/udpへの通信を許可
$ sudo ufw allow 8211/udp

# ファイアウォールのリロード
$ sudo ufw reload

ConoHa VPSの場合

ConoHaのVPSサービスを使っている方は、セキュリティグループ機能を使えば簡単にポート解放できます。
まずはUbuntu側のファイアウォールを切ります。

# ファイアウォールの無効化
$ sudo ufw disable

パルワールドのサーバで使うポートを許可するセキュリティグループを作ります。

1.png

2.png

3.png

セキュリティグループの名前は自分のわかりやすいもので大丈夫です。

4.png

通信方向はInでIPv4, IPv6の両方のUDPプロトコル8211番を開放してあげます。

5.png

サーバの設定画面のネットワーク情報タブからセキュリティグループを変更します。

6.png

7.png
これでサーバに接続することができるようになりました。
初期設定ではIPアドレス:8211に接続し、サーバに接続するためのパスワードは作っていないのでパスワードを使用のチェック欄のマークは外しておきましょう。

サービスに登録して自動起動するようにする

ここからは追加の設定です。必要ならば設定してください。
systemdにサービスを登録して、OS起動時に自動でサーバが立ち上がるようにします。
viなどで適宜作成してください。

$ sudo vi /etc/systemd/system/palworld-dedicated.service

iキー(もしくはaキー)で編集モードに入れますので、以下を打ち込んでください。

[Unit]
Description=Palworld Dedicated Server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target

[Service]
ExecStart=/home/palworld/Steam/palworld/PalServer.sh port=8211 players=32 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
LimitNOFILE=100000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s INT $MAINPID
Restart=always
User=palworld
Group=palworld
TimeoutStartSec=10

[Install]
WantedBy=multi-user.target

escキーを押して編集モードから離脱し、:wqと打ち込んで保存してください。
デーモンをリロードして再起動させます。

# デーモンのリロード
$ sudo systemctl daemon-reload

# サービスの自動起動を有効化
$ sudo systemctl enable palworld-dedicated.service

# サービスの起動
$ sudo systemctl start palworld-dedicated.service

サービスを起動することでサーバも起動されるようになります。
なお、必要に応じて以下のコマンドも使用してください。

# サーバを停止させる
$ sudo systemctl stop palworld-dedicated.service

# サーバのステータスを確認
$ systemctl status palworld-dedicated.service

# サーバのログを確認
$ sudo journalctl -u palworld-dedicated.service

サーバの設定を変更する。

まずはデフォルトで用意されている設定ファイルをコピーし、設定ファイルを新しく作成します。

# ディレクトリの移動
cd /home/palworld/Steam/steamapps/common/palworld

# デフォルト設定ファイルをコピー
cp DefaultPalWorldSettings.ini Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

ここで一旦サーバを停止させ、設定ファイルの変更を行います。

# サーバを停止
sudo systemctl stop palworld-dedicated.service

サーバを一旦停止させないと値が上書きされます。
停止してから編集を行って下さい。

# 任意の値を変更
vi Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

以下の表を参考に設定してください。

項目名 デフォルトの値 解説
Difficulty None ゲームの難易度
DayTimeSpeedRate 1.000000 昼の経過速度倍率
NightTimeSpeedRate 1.000000 夜の経過速度倍率
ExpRate 1.000000 経験値の入手倍率
PalCaptureRate 1.000000 捕獲確率の倍率
PalSpawnNumRate 1.000000 パル出現倍率
PalDamageRateAttack 1.000000 パルの与えるダメージ倍率
PalDamageRateDefense 1.000000 パルの受けるダメージ倍率
PlayerDamageRateAttack 1.000000 プレイヤーの与えるダメージ倍率
PlayerDamageRateDefense 1.000000 プレイヤーの受けるダメージ倍率
PlayerStomachDecreaseRate 1.000000 プレイヤーの満腹度減少倍率
PlayerStaminaDecreaseRate 1.000000 プレイヤーのスタミナ減少倍率
PlayerAutoHPRegenRate 1.000000 プレイヤーのHP自然回復倍率
PlayerAutoHpRegeneRateInSleep 1.000000 プレイヤーの睡眠時HP回復倍率
PalStomachDecreaseRate 1.000000 パルの満腹度現象倍率
PalStaminaDecreaseRate 1.000000 パルのスタミナ減少倍率
PalAutoHPRegeneRate 1.000000 パルのHP自然回復倍率
PalAutoHpRegeneRateInSleep 1.000000 パルの睡眠時HP回復倍率(パルボックス内)
BuildObjectDamageRate 1.000000 建築物に対するダメージ倍率
BuildObjectDeteriorationDamageRate 1.000000 建築物の劣化速度倍率
CollectionDropRate 1.000000 採集アイテムの入手量倍率
CollectionObjectHpRate 1.000000 採集オブジェクトのHP倍率
CollectionObjectRespawnSpeedRate 1.000000 採集オブジェクトのリスポーン間隔倍率
EnemyDropItemRate 1.000000 ドロップアイテム量の倍率
DeathPenalty All デスペナルティ設定(None, Item, ItemAndEquipment, All)
GuildPlayerMaxNum 20 ギルドの最大人数
PalEggDefaultHatchingTime 72.000000 キョダイタマゴの孵化にかかる時間(hour)
bActiveUNKO False アクティブなうんこ
bEnableAimAssistPad True ゲームパッドのエイムアシスト
bEnableAimAssistKeyboard False キーボードのエイムアシスト
ServerPlayerMaxNum 32 サーバーに参加できる最大人数
ServerName "Default Palworld Server" サーバー名
ServerDescription サーバー説明
AdminPassword AdminPassword
ServerPassword サーバーパスワード
PublicPort 8211 外部公開ポート
PublicIP 外部公開IP
RCONEnabled False RCONの有効化
RCONPort 25575 RCONで使用するポート
Region 地域
bUseAuth True 認証を使用する
BanListURL "https://api.palworldgame.com/api/banlist.txt" BAN一覧のURL

また、公式のガイドも参考にしてください。
PalWorldSettings.iniは改行なしの設定ファイルです。改行を挟むと設定が初期値に戻ってしまうので改行はしないようにしましょう。

# サーバの起動
sudo systemctl start palworld-dedicated.service

参考文献

1. 最大32人 パルワールド Linux 専用サーバの建て方

2. PalworldのDedicated ServerをConoHa VPSで建てた

3. パルワールドサーバーの構築とデーモン化

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?