前の記事では、VPSを使ってUbuntu Server 20にマインクラフト(MINECRAFT)統合版(Bedrock Edition)のサーバー用ソフトウェアをインストールする手順を書きました。前の記事も是非ご覧下さい。
今回の記事では、インストールしたマインクラフト統合版サーバーの各種設定について書きたいと思います。自分のサーバーにインストールしていますので、色々と設定を変えることができます。この辺りは、マインクラフトの公式サーバーであるREALMSと比べた場合、自分でやらなければならないことが多い代わりに、サーバーの設定の自由度は高くなっています。
Server Propertiesの設定
マインクラフト統合版のサーバー用ソフトウェアの設定に関しては、サーバー用ソフトウェアをインストールしたディレクトリの中にある「server.properties」というファイルに記述されていますので、RLoginなどのターミナルソフトで自分のサーバーにログインしてこのファイルを開いてみましょう。
$ cd /home/ユーザーID/bedrock
$ nano server.properties
「server.properties」には英語ですが、各設定項目に関してその意味や、設定可能な値について書かれています。それぞれの項目の意味や規定値、選択可能な値などを纏めると以下のようになります。
server-name = Dedicated Server
サーバーの名前です。規定では「Dedicated Server」となっていますが、自由に文字列で決めることができます。マインクラフトのゲーム内においてもサーバー選択画面で、この名前が表示されます。
gamemode = survival
デフォルトのゲームモードを決めるもので、新たにサーバー上のワールドにログインした人の最初のゲームモードになりますが、ゲーム中に各プレイヤーが自分のゲームモードを選択することもできます。「survival」「creative」「adventure」から選ぶことができます。
difficulty = easy
ゲームの難易度を決めるものですが、ゲーム中に難易度を変更することもできます。「peaceful」「easy」「normal」「hard」から選ぶことができます。
allow-cheats = false
ゲーム内のチート機能、チートコマンドを許可するかどうかを決めます。「true」(チートを許可する)「false」(チートを許可しない)から選びます。
max-players = 10
このサーバー内のワールドで遊ぶことができる最大人数を決めます。正の整数で設定します。マインクラフトの公式サーバーであるREALMSでは10人となっています。当然ですが、同じサーバーで遊ぶ人数が多いほど、CPUやメモリなどのサーバーのハードウェアの性能も高くなければなりません。
一般的なVPSを利用している場合、メモリが1GBであれば2~3人、2GBでも5~7人程度が適切な人数になると思います。
online-mode = true
「true」の場合、サーバーに接続するプレイヤーは、Xbox Liveで認証されたユーザーである必要があります。「true」と「false」から選択できます。
white-list = false
「true」の場合、統合版のサーバーをインストールしたディレクトリ内にある「whitelist.json」に記載されたプレイヤーしかサーバーに接続することができません。関係ない人がワールドに入ってくるのを防ぐためには「true」にして一緒に遊ぶ人を「whitelist.json」に記載するのが良いです。「true」と「false」から選択できます。
server-port = 19132server-portv6 = 19133
サーバーが使用するポート番号を入力します。「server-port」はIPv4、「server-portv6」はIPv6のポート番号となります。1~65535までの整数で決めることができます。マインクラフトのサーバーが19132番ポートを利用しているのはよく知られていますので、ポート番号を変更することで悪意のある人からのサーバーへの攻撃を減らすことができる可能性があります。また、サーバーでファイアーウォールを設定している場合は、ここで指定するポート番号の通信を許可する必要があります。
view-distance = 32
プレイヤーからどこまで離れた場所までを描画するかを決めることができます。2~32の整数で設定することができ、単位はチャンク(16×16ブロック)となります。プレイヤーを中心とした半径の距離を示しており、数字が大きいと、その分、処理が重たくなるため、カクツキが気になる場合は数字を下げると良いです。
tick-distance = 4
プレイヤーからどこまで離れた場所までワールドを動かすかを決めるもので、ゲーム内の設定では「シミュレーション距離」と呼ばれているものです。4~12の整数で設定することができ、単位はチャンク(16×16ブロック)となります。プレイヤーを中心とした半径の距離を示しており、数字が大きいと、その分、処理が重たくなるため、カクツキが気になる場合は数字を下げると良いです。
player-idle-timeout = 30
プレイヤーが何も操作しない状態(アイドル状態)で何分間経過すると自動的にログアウト(キック)するかを指定します。デフォルトでは30分間で自動的にログアウト(キック)します。ゼロを指定すると自動ログアウトしなくなります。
max-threads = 8
サーバー用ソフトウェアが使用する最大スレッドを設定します。使用できるスレッド数は、VPSなどのサーバー側の仕様によります。
level-name = Bedrock level
サーバーで生成して遊ぶワールドの名前で、自由に文字列で決めることができます。また、ワールドのデータは、ここで指定する名前のディレクトリに保存されます。
level-seed = (空欄)
サーバーで生成するワールドのシード値を指定します。シード値を指定せずに空欄のままにしておけば、最初にサーバー上のワールドに入る際に、ランダムのシード値でワールドが生成されます。
default-player-permission-level = member
新しくサーバー上のワールドに入るプレイヤーの権限を指定します。プレイヤーの権限はゲーム内で変更可能です。「visitor」、「member」、「operator」の3つから指定します。「visitor」はワールドに入ることができますが、戦う・採掘する・建築するといったマインクラフトの通常の遊び方が何もできず、見ているだけになります。「member」は戦う・採掘する・建築するなど普通にマインクラフトで遊ぶことができますが、ワールドの設定変更や他のプレイヤーの権限変更などはできません。また、チートコマンドが許可されているワールドでもチートコマンドを使用することはできません。「operator」はワールドの管理者として遊ぶことはもちろん、ワールドの設定変更や他のプレイヤーの権限変更などワールドに対する全ての権限を持っています。
texturepack-required = false
ワールドが特定のテクスチャパックを使用している場合、このワールドに入る参加者にテクスチャパックの使用を強制する場合は「true」を、強制しない場合は「false」と設定します。
content-log-file-enable = false
エラーが発生した場合に、ログをファイルに出力するかどうかを「true」または「false」で指定します。
compression-threshold = 1
ネットワークペイロードの最小値を0~65535の範囲の整数で設定します。デフォルトの「1」から特に変更する必要はないと思います。
server-authoritative-movement = true
プレイヤーの位置について、ゲーム内の位置とサーバー内の位置が一致しない場合に修正を行うかどうかを「true」または「false」で設定します。修正は、このあとに出てくる設定項目「correct-player-movement」が「true」の場合のみ行われます。
player-movement-score-threshold = 20
「server-authoritative-movement」に関連する項目で、プレイヤーの異常な動作が検知されるまでの閾値を設定します。
player-movement-distance-threshold = 0.3
「server-authoritative-movement」に関連する項目で、プレイヤーの位置について、ゲーム内の位置とサーバー内の位置がズレていると検知されるまでの閾値を設定します。
player-movement-duration-threshold-in-ms = 500
「server-authoritative-movement」に関連する項目で、プレイヤーの位置について、ゲーム内の位置とサーバー内の位置のズレを修正する時間の間隔をミリ秒単位で整数で設定します。
correct-player-movement = false
「server-authoritative-movement」に関連する項目で、プレイヤーの位置とサーバー内の位置のズレを修正するかどうかを「true」または「false」で設定します。統合版サーバーはまだ開発段階のものであり、これを「true」にすることはお勧めしませんとされています。
Permissons.jsonの設定
サーバー用ソフトウェアをインストールしたディレクトリ内にある「permissions.json」に個別にプレイヤーの権限を設定することができます。権限は「visitor」「member」「operator」から選択が可能で、設定するプレイヤーのXUIDが必要になります。
XUIDは、サーバー内のワールドにログインした状態でサーバーの画面をターミナルソフトなどで表示させるとプレイヤーのログイン・ログオフ時にXUIDが表示されます。
この方法で個別のプレイヤーの権限を設定する場合、server.propertiesの「online-mode」がtrueになっている必要があります。また、permissions.jsonで個別に権限が設定されていないプレイヤーの権限は、server.propertiesの「default-player-permission-level」で設定された権限が初期設定されます。operator権限を持つプレイヤーは、ゲーム内のコマンドで他のプレイヤーの権限を変更することも可能です。
「permissions.json」の記述例は以下の通りとなります。
[
{
”permission”: “operator”,
”xuid”: “111111111”
},
{
”permission”: “member”,
”xuid”: “22222222”
},
{
”permission”: “visitor”,
”xuid”: “333333333”
}
]
Whitelistの設定
server.propertiesの「white-list」をtrueに設定している場合、サーバー用ソフトウェアをインストールしたディレクトリ内にある「whitelist.json」にサーバー内のワールドに入ることができるプレイヤーを個別に指定することができます。接続するプレイヤーを指定するには、プレイヤーのXbox Liveゲーマータグを知っている必要があります。
「whitelist.json」の記述例は以下の通りとなります。
[
{
”ignoresPlayerLimit”: false,
”name”: “ExampleGamerTag”
},
{
”ignoresPlayerLimit”: false,
”name”: “ExampleGamerTag”,
”xuid”: “999999999”
}
]
「ignoresPlayerLimit」をtrueにしている場合は、ここで指定されたプレイヤーは、server.propertiesで設定した「max-players」による参加プレイヤーの制限数に含まれます。falseにしている場合は、参加プレイヤーの制限数にカウントされません。
また、xuidは、そのプレイヤーが最初にワールドに入った際に自動的にwhitelist.jsonに記述されますので、設定時点ではXbox Liveのゲーマータグまで設定すれば大丈夫です。
最後に
マインクラフト統合版のサーバー用ソフトウェアは、現時点ではまだ公式ホームページでも「アルファ版」と呼ばれており、開発段階のテスト版という位置づけです。そのため、マインクラフトJava版のサーバー用ソフトウェアと比べても設定できる項目が少ない状態です。ただ、「アルファ版」と言ってもマインクラフトを楽しむことは十分にできます。
この記事がマインクラフト統合版のサーバーの立ち上げに少しでもお役に立てれば幸いです。最後までご覧頂き、ありがとうございました。