見出し画像

WindowsでSteamCMDを使用したPalWorldのサーバ構築

一般の方ではちょっとわかりにくいSteamCMDを使用したサーバ構築の説明です
ただし、サーバを公開する関係上、自分のWAN側のIPアドレスは分かるようにしてください
一番最後に各社のポート開放方法へのリンクと自分のIPとポートを確認出来るサイトを載せてありますので参考にしてください
アクセスする人数が多い場合、PCに6コア以上のCPU,16GB以上のメモリ、SSD、ネット回線は1G以上の光回線をお勧めします


①.SteamCMDの導入

まず初めにSteamCMDをPCにインストールします
下記リンクよりダウンロードしてください

SteamCMD

https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

ダウンロードできたらファイルをインストールしたい所へ解凍します
ここでは例として”D:\steamcmd”フォルダにします


②.SteamCMDの実行

D:\steamcmd\steamcmd.exe”をダブルクリックして実行します
ここは各自解凍した先に入ってる”steamcmd.exe”を実行してください
インストールが開始されますので暫く待ちます
”Loading Steam API…OK”が表示され、”steam>”になりましたらインストール完了です


③.PalServerのインストール

その状態で”steam>”の後に以下のコマンドを打ち、PalServerをインストールします
以下の2個のコマンドを順に実行してください

login anonymous

app_update 2394010 validate

コマンドを順に打ち込み

このように”fully installed”が出ればOK

すべてダンロードされ、また”steam>”の状態になりましたら起動用のリンクをデスクトップに作ります
デスクトップ上の何もない所で”右クリック>新規作成>ショートカット”を選び

デスクトップにリンク作成

項目の場所に入力します
今回の例だと以下のようになります
それぞれSteamCMDをインストールした先のフォルダにあります
D:\steamcmd\steamapps\common\PalServer\PalServer.exe

ショートカットの作成

入力が済みましたら次へを押し、デスクトップ上にリンクを作成します

PalServerリンク

④.PalServerの実行

デスクトップにリンクが作れたら一度そのリンクをダブルクリックして実行します
以下の警告が出ますが許可を押し、Windowsから通信可能にします

ファイアウォール警告

すると以下のような画面になればとりあえず起動確認できましたので右上の”X”を押し、一旦ウインドウを閉じます

PalServer起動画面

⑤.”PalWorldSettings.ini”のコピー

一度PalServerを実行すると、”DefaultPalWorldSettings.ini”が作成されます
今回の設定だと以下のフォルダにあるので
D:\steamcmd\steamapps\common\PalServer\
エクスプローラーでアクセスし
そこに”DefaultPalWorldSettings.ini”があるので
それを”PalWorldSettings.ini”に名前を変更します

これを以下のように名前変更↓
”PalWorldSettings.ini”に変更

次に名前変更した”PalWorldSettings.ini”を以下のフォルダに上書きコピーします
D:\steamcmd\steamapps\common\PalServer\Pal\Saved\Config\WindowsServer

コピーして
コピー先の
”D:\steamcmd\steamapps\common\PalServer\Pal\Saved\Config\WindowsServer”
フォルダの上で右クリックを押し貼り付け
ファイルを置き換える

⑥.”PalWorldSettings.ini”の設定

まずPalServerの設定を今後も変更しやすくするために、デスクトップへのリンクを張ります
デスクトップ上で新規作成>ショートカットを選び、今回の例だと

D:\steamcmd\steamapps\common\PalServer\Pal\Saved\Config\WindowsServer

を指定します

ショートカットの作成フォルダリンク

次へを押しデスクトップ上にリンクを作成します

WindowsServerフォルダリンク

次にフォルダを開き、”PalWorldSettings.ini”ファイルの上で
右クリック>編集
を選びます

右クリック>編集
PalWorldSettings.ini

PalWorldSettings.ini”を開いたら編集します
各数値や設定を変えるのですがその際、むやみにエンターを入れて改行しないようにそのままで編集してください


☆解析した結果、標準値での内容☆

◎ 難易度=なし - 専用サーバーには無関係。
◎ DayTimeSpeedRate=1.000000 - 日中の持続時間を変更します。
◎ NightTimeSpeedRate=1.000000 - 夜の持続時間を変更します。
◎ ExpRate=1.000000 - 獲得する経験値を変更します。
◎ PalCaptureRate=1.000000 - パルを捕まえられる可能性。
◎ PalSpawnNumRate=1.000000 - パルがスポーンする頻度。
◎ PalDamageRate Attack=1.000000 - パルが与えるダメージの量。
◎ PalDamageRate Defense=1.000000 - パルが受けるダメージの量。
◎ PlayerDamageRate Attack=1.000000 - プレイヤーが与えるダメージの量。
◎ PlayerDamageRate Defense=1.000000 - プレイヤーが受けるダメージ量。
◎ PlayerStomachDecreaceRate=1.000000 - 空腹感が減少する速度。
◎ PlayerStaminaDecreaceRate=1.000000 - スタミナが減少する割合。
◎ PlayerAutoHPRegeneRate=1.000000 - 傷ついたときにHPが自動的に回復する速度。
◎ PlayerAutoHpRegeneRateInSleep=1.000000 - 睡眠中に回復するHPの量。
◎ PalStomachDecreaceRate=1.000000 - Palの空腹度が減少する割合。
◎ PalStaminaDecreaceRate=1.000000 - Palのスタミナが減少する割合。
◎ 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。
◎ bEnableAimAssistPad=True - PADでの照準アシストを有効または無効にできます。
◎ bEnableAimAssistKeyboard=False - キーマウでの照準アシストを有効または無効にできます。
◎ DropItemMaxNum=3000 - 一度にドロップできるアイテムの最大数。
◎ BaseCampMaxNum=128 - 一度に建設できる基地の最大数。
◎ BaseCampWorkerMaxNum=15 - キャンプに滞在できるワーカーPalの最大数。
◎ DropItemAliveMaxHours=1.000000 - ドロップされたアイテムが消えるまでの時間。
◎ bAutoResetGuildNoOnlinePlayers=False - True時にオンラインのプレイヤーがいない場合、ギルドは解散されます。
◎ bIsPvP=False - PvPの有効または無効にできます。
◎ bCanPickupOtherGuildDeathPenaltyDrop=False - 死亡時に他のギルドメンバーがアイテムを拾えるのかを有効または無効にできます
◎ bEnableFastTravel=True - ファストトラベルを有効または無効にできます。
◎ bIsStartLocationSelectByMap=True - ゲーム開始時の場所を選べるか有効または無効にできます。
◎ bEnableFriendlyFire=False - FFが有効または無効にできます。
◎ AutoResetGuildTimeNoOnlinePlayers=72.000000 - 非アクティブなギルドが解散されるまでの時間。
◎ GuildPlayerMaxNum=20 - ギルドプレイヤーの最大数。
◎ PalEggDefaultHatchingTime=72.000000 - パルの卵が孵化するまでにかかる時間。
◎ WorkSpeedRate=1.000000 - パルの作業速度。
◎ CoopPlayerMaxNum=4 - パーティー内のプレイヤーの最大数。
◎ ServerPlayerMaxNum=32 - サーバー上で許可される最大プレーヤー数 (上限は 32)。
◎ ServerName="" - サーバーの名前。
◎ ServerDescription="" - リストでサーバーを選択したときに表示される内容。
◎ AdminPassword="" - 管理者アクセスを許可するために使用されるパスワード。
◎ ServerPassword="" - 通常のプレイヤーが参加するために必要なパスワード。

☆以下まだ不明☆

◎ bIsMultiplay=False - マルチプレイの有効または無効?
◎ bEnableNonLoginPenalty=True - ログインしていない時間にペナルティ?
◎ bExistPlayerAfterLogout=False - ログアウト時にプレイヤーデータの削除?
◎ bEnableDefenseOtherGuildPlayer=False - 他のギルドプレイヤーから防御を行えるかどうか?
◎ bEnablePlayerToPlayerDamage=False - 追加のPvP設定?
◎ bEnableInvaderEnemy=True - 拠点襲撃?
◎ bActiveUNKO=False - うんこするかどうか?

この中で重要なのは、サーバの名前と開放用のポート番号です
現状、パスワード設定すると不具合で直接IPを入力してもパスワード入力画面が出ないまま弾かれますので設定はしないほうが良いでしょう
※修正されました
ポート番号は解らなければそのままの8211でOKです
後は各自使用しているルーターでポート8211のUDPをポートマッピングします
※注)ポートの開け方や確認等は最後の⑨を参照してください
   但しV6プラスを使用の方は使えるポートが限られてますので注意してください

サーバに使用しているPCのIPは固定したほうが良いです
それぞれ設定が完了したら上書き保存し、PalServerを起動して確認します
※注)設定ファイルでのポート指定はバグで機能していないのと、ロビーに表示するようにする、マルチスレッド対応化するために
”port=XXXX -publiclobby -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS”
の起動オプションを追加しましょう
RCONを使用する場合は以上のオプションに”-rcon”を足してください

起動オプションを追加する


PalServer起動画面

上の画面が出れば正常です
後はゲーム側で実際にサーバにアクセスできるか確認します

マルチプレイに参加する(専用サーバ)を選び

マルチプレイに参加する(専用サーバ)

試しに下部の欄に直接入力します

ここにIPとポート番号を入力

”IP:ポート番号”のフォーマットで打ち込みます(例123.123.12.34:5678)
サーバとゲームのPCが同一な場合は
”127.0.0.1:ポート番号” 
でOKです
これで上手く繋がれば完了です
あとは細かいゲームサーバの設定を煮詰めていきましょう


⑦.管理者モードについて

PalWorldSettings.ini”の中の”AdminPassword=”を設定する事によって管理者権限を与えられます
パスワードを設定後、ゲームサーバに入りゲーム画面でENTERキーを押し、チャット欄を開きます
そこで”/AdminPassword (設定したパスワード)”を入力してください
その状態でESCキーを押すと今ログインしているメンバー名とIDが表示されます
メンバーの名前の場所をクリックするとIDをコピー出来ます
各コマンドの後にCTRL+VキーでIDをペーストすると使いやすいです

☆以下コマンド一覧☆

/Shutdown (秒数) (メッセージ)	メッセージを表示して指定した秒数が経過後にサーバーをシャットダウン
/DoExit	サーバーを強制終了
/Broadcast (メッセージ)	サーバー参加者に対してメッセージを送信
/KickPlayer (SteamID)	指定したSteamIDのプレイヤーをサーバーから切断
/BanPlayer (SteamID)	指定したSteamIDのプレイヤーをサーバーからBAN
/TeleportToPlayer (SteamID)	指定したSteamIDのプレイヤーの座標にテレポート
/TeleportToMe (SteamID)	指定したSteamIDのプレイヤーをコマンド実行者の座標へテレポート
/ShowPlayers	現在サーバーに参加しているプレイヤーを表示
/Info	サーバーの情報を表示
/Save	サーバーのセーブ

※注意❢❢
サーバプログラムを終了しても、完全にプログラムが終了していない場合がありますので、タスクマネージャーから確実に落とすことを推奨します
これに気が付かないでまた起動した場合、過度な負荷や保存データ整合性の不具合が起きる可能性があります


⑧.サーバのアップデートについて

アップデートが来たらサーバを落とし、速やかにの項目を再実行して更新してください
ゲームとサーバのバージョンが違うと入れませんので気をつけましょう


⑨.ポートの開放と確認について

各社のやり方を参考にポート開放をしてください

Aterm
ポートマッピング(ポートの開放)の設定を行いたい (aterm.jp)

バッファロー
ポート開放の設定方法/アドレス変換の設定方法 | バッファロー (buffalo.jp)

エレコム
【LAN-】ポート転送(ポートフォワード)設定方法 (elecom.co.jp)

アイ・オー・データ
【IODATA】Wi-Fiルーターでポート開放する方法 | IODATA アイ・オー・データ機器

ASUS
[WiFiルーター] 仮想サーバー/ポートフォワーディングの設定方法 | サポート 公式 | ASUS 日本

◎tp-link

ポート開放の方法 | TP-Link 日本

適切にポート開放出来ているか、下記のサイトで調べてみましょう
必ずサーバに使用するPCから行ってください


ポート番号を入力

ちゃんと設定できている場合
Port 「ポート番号」 is open on 「IPアドレス」
と表示されます


以上、大まかにまとめましたが、急ぎの公開なので抜けている箇所があるかもしれません
今後もアップデート時に内容も変更する予定です



この記事が気に入ったらサポートをしてみませんか?