ARK: Survival Evolved Wiki
S'inscrire
Advertisement

Cette page décrit comment lister tous les serveurs ARK en ligne et envoie une requête pour connaître leur statut actuel, comme le fait le navigateur en-jeu.

Obtenir la liste des serveurs[ | ]

Les serveurs officiels et non-officiels sont obtenus séparément. Pour obtenir une liste des serveurs officiels, vous devez avoir l'API web ARK. ARK utilise le Protocole maître Valve de requête des serveurs pour obtenir une liste des serveurs non-officiels.

Requête des infos serveurs[ | ]

Les informations serveur sont obtenues avec le Protocole Valve de requête des serveurs. Les descriptions des champs de protocole non modifiées (les "plugins" du Workshop Steam ne comptent pas) que les serveurs ARK utilisent sont ci-dessous. Les serveurs ARK modifiés peuvent peuvent reprendre ou changer la signification de tous les champs et en ajouter.

Requêtes d'information[ | ]

Champ Type Description
Version de protocole Byte Version de protocole serveur ARK. Actuellement 17.
Nom du serveur Champ Nom du serveur ARK. Pour les serveurs non modifiés, peut inclure le numéro de version (description ci-dessous).
Carte Champ Nom de la carte. Le nom par défaut est "TheIsland".
Dossier Champ Toujours égal à "ark_survival_evolved"
Jeu Champ Toujours égal à "ARK: Survival Evolved"
AppID Court Inutilisé - toujours égal à 0.
Compte du joueur Byte Nombre de joueurs en ligne.
Joueurs max Byte Nombre de joueurs maximum.
Compte du bot Byte Inutilisé - toujours égal à 0.
Type de serveur Byte 0x64 pour un serveur dédié, 0x6C pour un serveur non-dédié.
Plateforme Byte 0x6C pour Linux, 0x6F pour Mac, ou 0x77 pour windows.
Privé? Byte 0 pour les serveurs publics, 1 pour les serveurs privés. Les serveurs avec 1 ne sont pas montrés.
VAC? Byte 1 à moins que le serveur ne commence avec -insecure.
Version Champ Inutilisé - toujours égal à "1.0.0.0".
Extra Data Flag (EDF) Byte Champ en bit décrivant quels champs additionnels suivent (voi ci-dessous). Vaut généralement 0xB1.
Données supplémentaires Bytes Champ en bit de longueur variable. Voir ci-dessous pour le format.

Ainsi la réponse d'un serveur non modifié ressemblera à ceci (les champs ne sont pas montrés à leur taille exacte):

[A2S Header  ] 49 11 [Nom du serveur ] [Nom de la carte ] 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 [Compte du joueur] [Joueurs max ] 00 [Type de serveur ] [Plateforme ] 
[Privé? ] 01 31 2E 30 2E 30 2E 30 00 B1 [Port  ] [ID Steam  ] [Mots clés ] C3 BE
47 05 00 00 00 00 00

Nom du serveur[ | ]

Les serveurs ARK non modifiés limitent leur nom de champ à 63 caractères. Ils font suivre leur nom de serveur de la version serveur. Le nom de serveur et la version serveur sont séparés par un espace-tiret-espace-parenthèse - ( et ensuite le numéro de version peut être lu jusqu'à la dernière parenthèse ou la fin du champ.

Données supplémentaires[ | ]

Masque EDF Champ Type Description
0x80 Port du jeu Court Numéro du port où le serveur de jeu tourne.
0x10 SteamID Long ID Steam du propriétaire du serveur
0x40 SourceTV Port Court Inutilisé
0x40 SourceTV Host Champ Inutilisé
0x20 Variables serveur Champ Voir ci-dessous pour le format.
0x01 GameID Long Steam GameID. Le 24 bit le plus bas vaut toujours 346110.

Variables serveur[ | ]

Le champ de variables est un champ qui contient une liste non séparée par des virgules de paramètres serveur "Clé:Valeur". Cette liste doit toujours commencer par une virgule et il ne faut pas s'attendre à la même robustesse que la principale. La table ci-dessous décrit les clés connues et les types de valeurs relatives et leur description, mais toutes peuvent changer. Les clés sont peut-être sensibles à la casse?

Clé Type Valeur
OWNINGID Entier Propriétaire réel du serveur, utilisé dans le socket API Steam.
OWNINGNAME Entier Propriétaire affiché du serveur, utilisé dans le socket API Steam.
NUMOPENPUBCONN Entier Nombre d'emplacements publics disponibles.
P2PADDR Entier Adresse pour se connecter en utilisant le socket API Steam.
P2PPORT Entier Numéro du port pour se connecter avec le socket API Steam.
SESSIONFLAGS Entier Inconu??
ModId_l Entier Inconnu? Lorsqu'il est donné, semble toujours égal à zéro, même si des mods sont installés.

Requêtes joueurs[ | ]

Les serveurs ARK renvoient des informations aux joueurs connectés, s'ils en font la demande.

Champ Type Description
Compte du joueur Byte Nombre de joueurs actuellement connectés.
Infos sur les joueurs Bytes Pour chaque joueur, une entrée joueur est incluse. Voir ci-dessous pour le format.

Entrées joueurs[ | ]

Champ Type Description
Index Byte Inutilisé - toujours zéro.
Nom Champ Nom du joueur, encodé en UTF-8.
Score Long Inutilisé - toujours zéro.
Durée Décimal Nombre de secondes où un joueur a été connecté.

Demandes de règles[ | ]

Champ Type Description
Décompte des règles Byte Nombre de règles qui suivent. Défaut: ne lui faites pas confiance!! Essayer d'analyser à la fin du paquet.
Règles Bytes Pour chaque règle, une entrée de règle est incluse. Voir ci-dessous pour le format.

Entrée des règles[ | ]

Les entrées des règles sont une liste dos-à-dos de champs Clé:Valeur. La clé et la valeur sont toutes les deux un champ, terminé par un byte de type null. Cette liste de règles inclut les Variables serveur tirée des requêtes d'informations sur leserveur., qui ne sont pas répétées dans cette table. Comme les variables serveurs dans la requête d'information, ne vous attendez pas à ce qu'aucun d'eux ne soit présent et ils peuvent changer à tout moment.

Clé Type Description
CUSTOMSERVERNAME_s Champ Le Nom du serveur est en minuscule (sans version serveur).
DAYTIME_s Champ Heure du jour en cours, formaté en ISO 8601 "hh:mm". Pour SoTK, commence avec "Lobby: " ou "Match: " pour indiquer si le serveur est en lobby ou en match. Les mods de conversion totale peuvent le changer mais il y a des exceptions de manipulation.
GameMode_s Champ La classe de nom du mode de jeu UE4 joué actuellement sur le serveur. la classe de nom du mode Vanilla est "TestGameMode_C". Comme il ne peut y avoir qu'un seul mode de jeu, le premier mod chargé contrôle cette donnée.
MATCHTIMEOUT_f Décimale Inconnu - semble être toujours égal à 120.0.
Networking_i 0 / 1 Inconnu?? Semble semble toujours égal à 0.
OFFICIALSERVER_i 0 / 1 1 pour un serveur officiel, 0 pour un serveur non-officiel. N.B. Même si la valeur est égale à 1, il ne sera pas affiché comme serveur officiel si son IP n'est pas trouvée dans le fichier officialservers.ini.
SEARCHKEYWORDS_s Champ Inutilisé - toujours égal à "Custom"
ServerPassword_b true / false True si le serveur a besoin d'un mot de passe pour être joint, false sinon.
BUILDID Ddécimal Version en cours du serveur selon la construction de l'id.
SERVERUSESBATTLEYE_b 0 / 1 True si le serveur a activé l'anti-triche BattlEye.
ClusterId_s Champ Nom du cluster si le serveur est en cluster.
LEGACY_i 0 / 1 True si le serveur est un serveur officiel legacy.
SESSIONISPVE_i 0 / 1 True si le serveur est PvE
ALLOWDOWNLOADITEMS_i 0 / 1 True si le serveur autorise le téléchargement d'objets depuis le nuage numérique.
ALLOWDOWNLOADCHARS_i 0 / 1 True si le serveur autorise le téléchargement du nuage numérique.

Ping & Requête de test[ | ]

Les serveurs ARK ne soutiennent pas les requêtes de ping ni les requêtes de test (ils sont toujours considérés comme obsolètes). On obtient les requêtes de test par les requêtes d'info ou de liste de joueur. La plupart des autres jeux obtiennent la latence serveur en mesurant le temps de parcours d'un paquet et le divisent par deux (on n'est pas sûr qu'ARK le fasse).

Advertisement