正式版Rustのゲームサーバーを構築・運用する方法

Rustは2013年の12月よりSteamにて、早期アクセスタイトルとして発売していたサンドボックスのサバイバルゲームです。 そして約4年の月日が経ち、2018年2月より正式版がリリースされました。

参考 Steam : RustSteam

私もちょうど、正式版リリースの少し前よりRustのサーバーを建てていましたが、昔と今とでは構築の方法も、ファイルの構成も変わっているため、これを機に記録として残しておきます。

注意
本記事はWindowsでのサーバー構築方法となります。 また、ポート開放できることを前提としています。ポート開放の経験がない初心者の方は、別途ポート開放の方法を調査してください。

サーバーを公開するためのポート開放

Rustのサーバーがデフォルトで使用するポートはこちらになります。

  • [UDP] 28015 – ゲーム用
  • [TCP] 28016 – RCON用
補足
後述するサーバーの設定にてポートは変更できます。

サーバーの構築と起動

かつての情報を見る限りでは、サーバーのファイルはRustから直接ダウンロードする形式でした。 今はSteamCMDを使ってダウンロードします。

SteamCMDの準備と、SteamCMDを使ったアプリケーションのインストール方法は下記の記事で説明しています。

SteamCMDを使ったゲームサーバーインストール方法 SteamCMDをもっと便利に!SteamCMD GUIの導入方法

記事中に出てくる必要な情報は、下記を前提として設定しています。

  • インストール先のフォルダパス:C:\rustserver
  • インストールするアプリケーションのID:258550

サーバーの設定

手順をまとめておきます。

  1. サーバー起動用バッチファイルの作成
  2. バッチファイル内設定の解説
  3. スタートアップの設定

サーバー起動用バッチファイルの作成

C:\rustserverの中にRun.cmdというファイルを作成し、メモ帳などのテキストエディタで開きます。 ここも当然、ファイル名は何でも良いです。開いたら下記のスクリプトを貼り付けます。

Run.cmd
@echo off
cd /d %~dp0

:start 

::Rustサーバーファイルの更新
C:\steamcmd\steamcmd.exe +login anonymous +force_install_dir c:\rustserver\ +app_update 258550 +quit

::Rustサーバーの起動
RustDedicated.exe -batchmode +server.port 28015 +server.level "Procedural Map" +server.seed 1234 +server.worldsize 4000 +server.maxplayers 10  +server.hostname "サーバー名" +server.description "サーバーの説明" +server.url "サイトのURL" +server.headerimage "画像のURL" +server.identity "server1" +rcon.port 28016 +rcon.password letmein +rcon.web 1

goto start
わかりやすいように1行ごとに区切っています。 Windows標準のコマンド機能についてはここでは説明しません。気になる方は別途調べてみてください。 簡単に説明すると、Rustサーバーを更新してからRustサーバーを起動しますが、Rustサーバーが終了した際にはまた更新と起動を繰り返します。

バッチファイル内設定の解説

Rustサーバーの起動のオプションについて説明します。

+server.port 28015

Rustサーバーのゲーム用ポートです。複数台公開しないなら、そのままでいいと思います。

+server.level “Procedural Map”

サーバーのマップです。下記のような選択肢があるみたいですが、”Procedural Map” 以外を試したことはないです。

  • “Procedural Map”
  • “Barren”
  • ”HapisIsland”
  • ”SavasIsland”
  • “SavasIsland_koth”
+server.seed 1234

サーバーマップのシード値です。この値によって地形や建物が変化します。値の幅は 0~2147483647 です。

+server.worldsize 4000

マップのサイズです。4000が標準的なサイズで、値の幅は 1000~6000です。 ちなみに6000にしてみた時にはマップはかなり広くなりましたが、建造物の数は変わらなかったため、結果遠いだけでした。

+server.maxplayers 10

サーバーに入れる人数の上限です。マップの広さやサーバーの性能などで調整しましょう。

+server.hostname “サーバー名”

Rustのサーバー検索画面に表示される名前です。

+server.description “サーバーの説明”

Rustのサーバー検索画面からINする前に出る画面に表示される説明文です。 日本語も一応書けますが、たくさん書くと所々端折られてしまうのでほとんど書けません。

+server.url “サイトのURL”

上記説明文の画面からジャンプできるウェブサイトのURLです。

+server.headerimage “画像のURL”

接続画面の背景イメージになる画像をURLで指定します。正直気にしたことはないです。

+server.identity “server1”

ここで指定した名前のフォルダがC:\rustserverserverフォルダ内に作成されます。 そしてその中にマップやBP、サーバー毎の設定ファイルが作成され、保存されます。 つまりこの例では C:\rustserver\server\server1\ に保存されます。

+rcon.port 28016

RustサーバーのRCON用ポートです。複数台公開しないなら、そのままでいいと思います。

+rcon.password letmein

RCONのパスワードです。必ず変更しましょう。

+rcon.web 1

1にしておくと、後述するWebSocketを使ったRCON接続サイトからサーバーコンソールにアクセスできます。 特に理由がなければそのまま1にしておくことをおすすめします。

スタートアップの設定

Windows Updateなどで自動的に再起動した場合を想定し、先ほど C:\rustserverの中に作った Run.cmd をスタートアップに登録します。 [Win+R] のショートカットで shell:startup と入力して OK すると、スタートアップ用のフォルダが開きます。 この中に Run.cmd のショートカットを入れておくと、再起動した時に自動で起動します。 ショートカットは、Run.cmd を右クリックでドラッグアンドドロップすると、右クリックメニューの中にショートカットを作成があると思います。

サーバーを起動する

作成した Run.cmd を実行しましょう。Windowsファイアウォールが許可を求めてくる場合は、許可してください。 このような画面になれば成功です。

サーバーの運用

サーバーを構築してそれで終わりではありません。今後はこのサーバーを運用していく必要があります。 コマンドについては調べればいくらでも出るので、ここではWebからのアクセスするツールなどを紹介したいと思います。

運用のための基本

まず、先ほどの画面の下に白いアンダーバーが見えるでしょうか? そこで管理者コマンドを入力することができます。 また、この画面では人の出入りやチャットを見ることができます。人が入ってくると

名前 [サーバー内ID/その人のSteamID] has entered the game

などと表示されます。この組み合わせは特に重要です。 なぜなら、コンバットログではサーバー内IDが表示され、BANするにはSteamIDが必要だからです。 どうもこの画面のログはファイルに出力されないようで、この画面を選択して [Ctrl+A] → [Ctrl+C] などで素早くここに表示されているログをコピーし、テキストエディタに貼り付けて使っています。 この画面のログをファイルに出力する方法をご存じであればご教示いただきたいです。

RCON:IOでコマンド入力する

少し運用してみると気付くかもしれませんが、標準のコンソールでは日本語が文字化けします。 そこで、WebSocketを使用した、RCON接続できるWebサイトを利用することをおすすめします。 参考 RCON:IO LoginRCON:IO 上記ページにサーバーのIPとポート、パスワードを入力すると管理コンソールにログインできます。 このツールを使うことで、サーバーが稼働している以外のPCからコンソールにアクセスできる利点もあります。 また、上のタブからChatやプレイヤー一覧などを確認したり、その場でBANしたりすることも可能です。

FAQ

科学者 (Scientist) のNPCをスポーンするようにするには?

cfgフォルダのserverauto.cfgに下記の行を追加します。

squadmanager.squad_disable “False”

または下記サイトが参考になりそうです。 参考 RUST Scientist Command and VariablesCorrosion Hour

その他の参考ページ

Rustサーバー構築方法について

参考 How to: Host your own Rust Dedicated ServerRustafied

2 COMMENTS

L_S-_-ER34 (@hirorin_ER34)

RUST個人鯖を立てたくて記事を拝見しました。サーバー起動用スクリプトの作成というところから分かりません。良ければ説明していただけますでしょうか?理解力無くて申し訳ございません。

返信する
Juhachi Konoe

コメントありがとうございます。率直に申し上げると何をどう説明したらいいのか私にもわかりません・・・。自分で言いたくはないですが、比較的こういうものに詳しい立場にいながら、わかりやすくしようと頑張ってブレイクダウンして書いたものなので、これ以上何を説明したらいいのかわからないのです。

例えるなら数学が得意で感覚的にわかる故に、苦手な人に教えられない感じです。

Twitterに具体的な質問をいただければ何かお返事できるとは思いますが、恐らく私には技術的な質問のほうが向いていると思います。なので「もっと詳細に」ということであれば、私とは逆の、「詳しくないところから頑張って立てた」人を探してきくのが早いと思います。

ちなみにですがこのブログのサーバー契約が3月いっぱいで終わってしまうので、引越ししなければそのまま消えてしまいます。もし今後も参考にしたいなら、何らかの形で保存しておくことをおすすめします。

返信する

コメントを残す