gamedig / node-gamedig

Query game servers and not only! Node.JS/Deno/Bun or Bash (via the CLI).
https://www.npmjs.com/package/gamedig
MIT License
608 stars 147 forks source link

bug: Ark SA Playerlist is empty #413

Closed jammsen closed 8 months ago

jammsen commented 10 months ago

Describe the bug The Playerlist object is empty while numplayers are showing the right amount of players connected to the server

Steps To Reproduce Tell me in discord to go on my server and use "npx gamedig --type asa jammsen.de:7783" on it.

Expected behavior A not empty Playerlist object

IamMully commented 10 months ago

To my knowledge, this is not a bug. The playerlist is not publicly accessible, despite it being returned (empty). This is because query returns a generic UE5 result. Perhaps Wildcard will add it in the future, but for now it is impossible to get this information. Please feel free to correct me if I am completely wrong.

jammsen commented 10 months ago

Ive added now quite a lot of "Test-Servers" to my site - https://jammsen.de/ - as you can see with the connect button you can get the ip, i tried almost all of them with "npx gamedig --type asa IP:PORT" and none return no players.

image

podrivo commented 8 months ago

I was testing some servers from this list: https://www.battlemetrics.com/servers/arksa. And the query is returning players inside state.raw.totalPlayers, which is also inside state.numplayers. But no players list. And as stated in the BattleMetrics page, ARK: Survival Ascended does not support player lists.

However, I've found this Wiki stating that it's possible to get the players list, but also mentions that it's using Valve's Protocol and not EOS, like it is currently. So I'm not sure if it's still true, as the page was last edited on 12 July 2022. Feels like this is related to the previous version of ARK: Survival Evolved, released in 2015, and not ARK: Survival Ascended, released in 2023.

Unfortunately, If this is the case, I believe there's nothing to action here.

Query example:

node bin/gamedig --type asa --pretty 207.244.82.105:5370

{
  "name": "EliteArk.com [Crossplay] 2man 10x Island1",
  "map": "TheIsland_WP",
  "password": false,
  "raw": {
    "deployment": "ad9a8feffb3b4b2ca315546f038c3ae2",
    "id": "0278a41cee444abb9ecf55887704c32e",
    "bucket": "TestGameMode_C:<None>:TheIsland_WP",
    "settings": {
      "maxPublicPlayers": 100,
      "allowInvites": true,
      "shouldAdvertise": true,
      "allowReadById": true,
      "allowJoinViaPresence": true,
      "allowJoinInProgress": true,
      "allowConferenceRoom": false,
      "checkSanctions": false,
      "allowMigration": false,
      "rejoinAfterKick": "",
      "platforms": null
    },
    "totalPlayers": 13,
    "openPublicPlayers": 87,
    "publicPlayers": [],
    "started": false,
    "lastUpdated": null,
    "attributes": {
      "MINORBUILDID_s": "47",
      "MODID_l": 0,
      "CUSTOMSERVERNAME_s": "EliteArk.com [Crossplay] 2man 10x Island1",
      "ISPRIVATE_l": 0,
      "SERVERPASSWORD_b": false,
      "MATCHTIMEOUT_d": 120,
      "ENABLEDMODSFILEIDS_s": "4923582,5016257,5024910,4894074,5029324,4928343,5031680,4923283,4888869,5009372,5036008,5033219",
      "DAYTIME_s": "1",
      "SOTFMATCHSTARTED_b": false,
      "STEELSHIELDENABLED_l": 1,
      "SERVERUSESBATTLEYE_b": true,
      "EOSSERVERPING_l": 162,
      "ALLOWDOWNLOADCHARS_l": 0,
      "OFFICIALSERVER_s": "0",
      "GAMEMODE_s": "TestGameMode_C",
      "ADDRESS_s": "207.244.82.105",
      "SEARCHKEYWORDS_s": "Custom",
      "__EOS_BLISTENING_b": true,
      "ALLOWDOWNLOADITEMS_l": 0,
      "LEGACY_l": 0,
      "ADDRESSBOUND_s": "207.244.82.105:5370",
      "SESSIONISPVE_l": 0,
      "__EOS_BUSESPRESENCE_b": true,
      "ENABLEDMODS_s": "931250,928793,928501,928708,940022,937546,939055,939228,928988,936882,930442,961348",
      "SESSIONNAMEUPPER_s": "ELITEARK.COM [CROSSPLAY] 2MAN 10X ISLAND1 - (V33.47)",
      "SERVERPLATFORMTYPE_s": "PC+PS5+XSX",
      "MAPNAME_s": "TheIsland_WP",
      "BUILDID_s": "33",
      "SESSIONNAME_s": "EliteArk.com [Crossplay] 2man 10x Island1 - (v33.47)"
    },
    "owner": "Client_xyza7891muomRmynIIHaJB9COBKkwj6n",
    "ownerPlatformId": null
  },
  "maxplayers": 100,
  "numplayers": 13,
  "players": [],
  "bots": [],
  "queryPort": 5370,
  "connect": "207.244.82.105:5370",
  "ping": 0
}
jammsen commented 8 months ago

I think i remember @CosminPerRam telling me in Discord that ASA uses EOS and that EOS (might) generally do not support giving playerlists out. I also never once successfully added an ASA server to the Steam-Server-Viewer also ASA isnt listed there as a game. Pretty sure that Valve thing was an ASE thing yeah @podrivo .

podrivo commented 8 months ago

Thank for the reply! Well, I guess this is safe to close then.

jammsen commented 8 months ago

If @CosminPerRam wants to close this, im fine with that.

CosminPerRam commented 8 months ago

I'd say we could add a note in GAMES_LIST to note that protocols using EOS dont provide players data.

jammsen commented 8 months ago

Sure, sounds nice, from my side this is already considered "done" 👍

podrivo commented 8 months ago

I'll make sure to add a note about this! (:

CosminPerRam commented 8 months ago

Closed by #489.