サーバーブラウザ

提供:ARK Wiki
Server Browserから転送)
ナビゲーションに移動 検索に移動

このページでは、ゲーム内のサーバーブラウザーと同様に、すべてのオンラインARKサーバーを一覧表示し、現在のステータスを照会する方法について説明します。

サーバーリストの取得

公式サーバーと非公式サーバーは別々に取得されます。公式サーバーのリストを取得するには、ArkのWebAPIを使用する必要があります。Arkは、Valveのマスターサーバークエリプロトコルを使用して、非公式サーバーのリストを取得します。

サーバー情報の取得

サーバー情報は、Valveのサーバークエリプロトコルを使用して取得されます。 変更されていないプロトコルフィールドの説明(Steamワークショップの「プラグイン」はカウントされません)Arkサーバーが使用するのは以下のとおりです。 もちろん、変更されたArkサーバーは、任意のフィールドの意味を偽装または変更し、追加のフィールドを追加することができます。

情報リクエスト

フィールド タイプ 説明
Protocol Version Byte Arkサーバープロトコルバージョン。 現在17。
Server Name String Arkサーバーの名前。 変更されていないサーバーの場合、これにはバージョン番号(以下で説明)が含まれる場合があります。
Map String 地図の名前。 デフォルトのマップは「TheIsland」と呼ばれます。
Folder String 常に「ark_survival_evolved」と等しい
Game String 常に「ARK:SurvivalEvolved」と同じ
AppID Short 未使用 - 常に0になります。
Player Count Byte 現在オンラインになっているプレーヤーの数。
Max Players Byte プレーヤーの最大数。
Bot Count Byte 未使用 - 常に0になります。
Server Type Byte 専用サーバーの場合は0x64、非専用サーバーの場合は0x6C。
Platform Byte Linuxの場合は0x6C、Macの場合は0x6F、Windowsの場合は0x77。
Private? Byte パブリックサーバーの場合は0、プライベートサーバーの場合は1。 1のサーバーは表示されません。
VAC? Byte サーバーが-insecureで起動されていない限り1。
Version String 未使用 - 常に "1.0.0.0.0 "と同じです。
Extra Data Flag (EDF) Byte 続く追加フィールドを説明するビットフィールド(以下を参照)。 通常は0xB1です。
Extra Data Bytes 可変長バイトフィールド。 形式については、以下を参照してください。

したがって、変更されていないサーバーからの応答は次のようになります(フィールドは正しいサイズで表示されません):

[A2S Header  ] 49 11 [Server Name ] [Map Name ] 61 72 6B 5F 73 75 72 76 69 76 61
6C 5F 65 76 6F 6C 76 65 64 00 41 52 4B 3A 20 53 75 72 76 69 76 61 6C 20 45 76 6F
6C 76 65 64 00 00 00 [Player Count] [Max Players ] 00 [Server Type ] [Platform ] 
[Private? ] 01 31 2E 30 2E 30 2E 30 00 B1 [Port  ] [SteamID  ] [Keywords ] C3 BE
47 05 00 00 00 00 00

サーバー名

変更されていないArkサーバーは、サーバー名フィールドを63文字に制限します。 また、サーバーのバージョンをサーバー名に追加します。 サーバー名とサーバーバージョンは、space-dash-space-parens - (で区切られます(その後、バージョン番号は、次の右括弧まで、または文字列の終わりまで読み取ることができます。

追加データ

EDF Mask Field Type 説明
0x80 Game Port Short ゲームサーバーが実行されているポート番号。
0x10 SteamID Long サーバー所有者のSteamID
0x40 SourceTV Port Short 未使用
0x40 SourceTV Host String 未使用
0x20 Server Variables String 形式については、以下を参照してください
0x01 GameID Long SteamGameID。下位24ビットは常に346110に等しくなります。

サーバー変数

Variablesフィールドは、「Key:Value」サーバーパラメーターの順序付けられていないコンマ区切りのリストを含む文字列です。リストは常にコンマで始まる必要がありますが、ロバストネス原則に従ってコンマを期待してはいけません。次の表は、既知のキーとその観測値のタイプおよび説明を示しています。これらはすべていつでも変更される可能性があります。キーは大文字と小文字を区別しているかもしれません。

Key Type
OWNINGID Integer SteamソケットAPIで使用されるサーバーの実際の所有者。
OWNINGNAME Integer SteamソケットAPIで使用されるサーバーの表示された所有者。
NUMOPENPUBCONN Integer 利用可能なパブリックプレーヤースロットの数。
P2PADDR Integer SteamソケットAPIを使用して接続するアドレス。
P2PPORT Integer SteamソケットAPIを使用して接続するポート番号。
SESSIONFLAGS Integer わからない??
ModId_l Integer わからない? 与えられたとき、たとえmodがインストールされていても、常にゼロに等しいように見えます。

プレイヤーのリクエスト

Arkサーバーは、リクエストに応じて、現在接続されているプレーヤーに関する情報を返します。

Field Type 説明
Player Count Byte 現在接続しているプレーヤーの数。
Player Info Bytes プレイヤーごとに、プレイヤーエントリが含まれています。 形式については、以下を参照してください。

プレイヤーエントリー

Field Type 説明
Index Byte 未使用 - 常に0です。
Name String UTF-8としてエンコードされたプレーヤーの名前。
Score Long 未使用 - 常に0です。
Duration Float プレーヤーがログインした秒数。

ルールリクエスト

Field Type 説明
Rule Count Byte 続くルールエントリの数。 バグ:信用しないでください!! パケットの終わりまで解析してみてください。
Rules Bytes ルールごとに、ルールエントリが含まれます。 形式については、以下を参照してください。

ルールエントリ

サーバールールは、Key:Value文字列の連続したリストです。 キーフィールドと値フィールドは両方とも文字列であり、ヌルバイトで終了します。 ルールリストには、サーバー情報要求からのサーバー変数も含まれていますが、このテーブルでは繰り返されていません。 infoリクエストのサーバー変数と同様に、これらの変数が存在することを期待しないでください。これらはいつでも変更される可能性があります。

Key Type 説明
CUSTOMSERVERNAME_s String サーバー名(サーバーバージョンなし)、すべて小文字。
DAYTIME_s String 現在の時刻。通常はISO 8601 "hh:mm"としてフォーマットされます。 SoTFゲームモードの場合、「Lobby: 」または「Match: 」のいずれかで始まり、サーバーが現在ロビーにあるかマッチにあるかをそれぞれ示します。 トータルコンバージョンMODはこれを好きなように変更できるので、例外を処理する必要があります。
GameMode_s String サーバーで現在再生されているUE4ゲームモードのクラス名。 バニラゲームモードクラスの名前は「TestGameMode_C」です。 サーバーで実行できるアクティブなゲームモードは一度に1つだけなので、これはサーバーのmod順序の最初のmodによって制御されます。
MATCHTIMEOUT_f Decimal 不明 - 常に120.0に等しいようです。
Networking_i 0 / 1 不明なのか?いつも0のようです。
OFFICIALSERVER_i 0 / 1 公式サーバーの場合は1、非公式サーバーの場合は0。 N.B. サーバーでこれが1に設定されている場合でも、そのIPが[[Web API#officialservers.ini|officialservers.ini]ファイルで見つからない限り、公式サーバーとして表示されません。
SEARCHKEYWORDS_s String 未使用 - 常に「カスタム」と同じです。
ServerPassword_b true / false サーバーが参加するためにパスワードが必要な場合はtrue、それ以外の場合はfalse。
BUILDID Decimal ビルドIDで識別されるサーバーの現在のバージョン。
SERVERUSESBATTLEYE_b 0 / 1 サーバーでBattlEyeanticheatが有効になっている場合はTrue。
ClusterId_s String サーバーがクラスター化されている場合のクラスターの名前。
LEGACY_i 0 / 1 サーバーがレガシー公式サーバーの場合はTrue。
SESSIONISPVE_i 0 / 1 サーバーがPvEの場合はTrue
ALLOWDOWNLOADITEMS_i 0 / 1 サーバーがクラウドからのアイテムのダウンロードを許可している場合はTrue。
ALLOWDOWNLOADCHARS_i 0 / 1 サーバーがクラウドからの文字のダウンロードを許可している場合はTrue。

pingとチャレンジのリクエスト

Arkサーバーはpingリクエストもチャレンジリクエストもサポートしていません(どちらも現在非推奨と見なされています)。 チャレンジリクエストは、情報またはプレーヤーリストリクエストを通じて処理されます。 他のほとんどのゲームは、送信された他のパケットのラウンドトリップ時間を測定し、2で割ることによってサーバーの待ち時間を取得します(Arkがどのように行うかはわかりません)