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
598 stars 147 forks source link

bug: The Front doesn't return players #443

Open Maxence1502 opened 8 months ago

Maxence1502 commented 8 months ago

When I query my server using the CLI (25504 is the query port) : gamedig --type thefront 45.90.161.17:25504

I get :

{
  "name": "90179093104499714",
  "map": "CooolMap",
  "password": false,
  "raw": {
    "protocol": 17,
    "folder": "ProjectWar",
    "game": "ProjectWar",
    "appId": 2285150,
    "numplayers": 0,
    "numbots": 0,
    "listentype": "d",
    "environment": "l",
    "secure": 1,
    "version": "1.0.0.0",
    "steamid": "90179093104499714",
    "tags": [
      "BUILDID:0",
      "OWNINGID:90179093104499714",
      "OWNINGNAME:90179093104499714",
      "SESSIONFLAGS:715",
      "GameMode_s:PVP",
      "BeaconPort_i:25503"
    ]
  },
  "maxplayers": 200,
  "players": [],
  "bots": [],
  "connect": "45.90.161.17:25502",
  "ping": 44
}

But 1 player is connected.

What can be the problem ? Or how to debug this ?

CosminPerRam commented 8 months ago

Hello, please use the issue templates.

What can be the problem ?

Maybe the server doesn't report players or that GameDig doesn't properly parse it if it does.

Or how to debug this ?

By adding --debug to the CLI command, this provides extra data that would be useful here.

Maxence1502 commented 8 months ago

I tested again and the players still don't come up.

Here's the debug:

Q#0 Starting
Q#0 Protocol: Valve
Q#0 Options: {
  socketTimeout: 2000,
  attemptTimeout: 10000,
  maxAttempts: 1,
  ipFamily: 0,
  protocol: 'valve',
  requestRules: false,
  type: 'thefront',
  host: '45.90.161.17',
  port: 25504,
  debug: true
}
Q#0 DNS Lookup: 45.90.161.17
Q#0 Raw IP Address: 45.90.161.17
Q#0 Requesting info ...
45.90.161.17:25504 UDP(46715)-->
Buffer length: 25 bytes
ff ff ff ff 54 53 6f 75 72 63 65 20 45 6e 67 69 6e 65 20 51 75
            T  S  o  u  r  c  e     E  n  g  i  n  e     Q  u
65 72 79 00
e  r  y

45.90.161.17:25504 <--UDP(46715)
Buffer length: 9 bytes
ff ff ff ff 41 ef 25 0a ab
            A     %

Q#0 Registered RTT: 13ms
Q#0 Received full packet
Q#0 Received 0x41 expected 0x49
Q#0 Received new challenge key: 0xab0a25ef
Q#0 UDP send finished by callback
45.90.161.17:25504 UDP(46715)-->
Buffer length: 29 bytes
ff ff ff ff 54 53 6f 75 72 63 65 20 45 6e 67 69 6e 65 20 51 75
            T  S  o  u  r  c  e     E  n  g  i  n  e     Q  u
65 72 79 00 ef 25 0a ab
e  r  y        %

45.90.161.17:25504 <--UDP(46715)
Buffer length: 208 bytes
ff ff ff ff 49 11 39 30 31 37 39 30 39 37 35 38 39 35 30 32 39
            I     9  0  1  7  9  0  9  7  5  8  9  5  0  2  9
37 38 00 43 6f 6f 6f 6c 4d 61 70 00 50 72 6f 6a 65 63 74 57 61
7  8     C  o  o  o  l  M  a  p     P  r  o  j  e  c  t  W  a
72 00 50 72 6f 6a 65 63 74 57 61 72 00 00 00 00 c8 00 64 6c 00
r     P  r  o  j  e  c  t  W  a  r                    d  l
01 31 2e 30 2e 30 2e 30 00 b1 9e 63 02 d4 fc 55 69 61 40 01 42
   1  .  0  .  0  .  0           c           U  i  a  @     B
55 49 4c 44 49 44 3a 30 2c 4f 57 4e 49 4e 47 49 44 3a 39 30 31
U  I  L  D  I  D  :  0  ,  O  W  N  I  N  G  I  D  :  9  0  1
37 39 30 39 37 35 38 39 35 30 32 39 37 38 2c 4f 57 4e 49 4e 47
7  9  0  9  7  5  8  9  5  0  2  9  7  8  ,  O  W  N  I  N  G
4e 41 4d 45 3a 39 30 31 37 39 30 39 37 35 38 39 35 30 32 39 37
N  A  M  E  :  9  0  1  7  9  0  9  7  5  8  9  5  0  2  9  7
38 2c 53 45 53 53 49 4f 4e 46 4c 41 47 53 3a 37 31 35 2c 47 61
8  ,  S  E  S  S  I  O  N  F  L  A  G  S  :  7  1  5  ,  G  a
6d 65 4d 6f 64 65 5f 73 3a 50 56 50 2c 42 65 61 63 6f 6e 50 6f
m  e  M  o  d  e  _  s  :  P  V  P  ,  B  e  a  c  o  n  P  o
72 74 5f 69 3a 32 35 35 30 33 00 5e de 22 00 00 00 00 00
r  t  _  i  :  2  5  5  0  3     ^     "

Q#0 Registered RTT: 46ms
Q#0 Received full packet
Q#0 Received 0x49 expected 0x49
Q#0 UDP send finished by callback
Q#0 INFO:  {
  protocol: 17,
  folder: 'ProjectWar',
  game: 'ProjectWar',
  appId: 2285150,
  numplayers: 0,
  numbots: 0,
  listentype: 'd',
  environment: 'l',
  secure: 1,
  version: '1.0.0.0',
  steamid: '90179097589502978',
  tags: [
    'BUILDID:0',
    'OWNINGID:90179097589502978',
    'OWNINGNAME:90179097589502978',
    'SESSIONFLAGS:715',
    'GameMode_s:PVP',
    'BeaconPort_i:25503'
  ]
}
Q#0 Requesting player list ...
45.90.161.17:25504 UDP(46715)-->
Buffer length: 9 bytes
ff ff ff ff 55 ef 25 0a ab
            U     %

45.90.161.17:25504 <--UDP(46715)
Buffer length: 6 bytes
ff ff ff ff 44 00
            D

Q#0 Registered RTT: 46ms
Q#0 Received full packet
Q#0 Received 0x44 expected 0x44
Q#0 UDP send finished by callback
Q#0 Size of players array: 0
Q#0 Size of bots array: 0
Q#0 Query was successful
{
  "name": "90179097589502978",
  "map": "CooolMap",
  "password": false,
  "raw": {
    "protocol": 17,
    "folder": "ProjectWar",
    "game": "ProjectWar",
    "appId": 2285150,
    "numplayers": 0,
    "numbots": 0,
    "listentype": "d",
    "environment": "l",
    "secure": 1,
    "version": "1.0.0.0",
    "steamid": "90179097589502978",
    "tags": [
      "BUILDID:0",
      "OWNINGID:90179097589502978",
      "OWNINGNAME:90179097589502978",
      "SESSIONFLAGS:715",
      "GameMode_s:PVP",
      "BeaconPort_i:25503"
    ]
  },
  "maxplayers": 200,
  "players": [],
  "bots": [],
  "connect": "45.90.161.17:25502",
  "ping": 13
}
CosminPerRam commented 8 months ago

It seems that the game doesn't provide any players-related data, as in the info query it says 0 (numplayers) and in the players query it yields no data. This is a problem to the game, not the query but Battlemetrics does report the players count (but again, no player names) and as of now, I don't know any other methods to query the game. In GAMES_LIST.md it is stated for this game that it reports wrongful name and maxplayers values, it's possible that they don't fully support this query standard. I will send an email to the devs to reach out about this but it'll take a while.

Maxence1502 commented 8 months ago

Ok, keep me informed :)

CosminPerRam commented 7 months ago

Update: no response unfortunately.

Maxence1502 commented 7 months ago

Oh :'(

How does BattleMetrics get the number of players ? image

podrivo commented 7 months ago

BattleMetrics must be using RCON to get players data.

I've tried using --requestRules, --requestRulesRequired and --requestPlayersRequired, but it didn't provide any players data.

Q#0 Requesting player list ...
218.93.208.188:27015 UDP(52905)-->
Buffer length: 9 bytes
ff ff ff ff 55 5b 58 ab 5b 
            U  [  X     [  

218.93.208.188:27015 <--UDP(52905)
Buffer length: 6 bytes
ff ff ff ff 44 00 
            D     

Q#0 Registered RTT: 565ms
Q#0 Received full packet
Q#0 Received 0x44 expected 0x44
Q#0 UDP send finished by callback
Full query response: ``` gamedig --type thefront --pretty 218.93.208.188:27015 --debug --requestRules --requestRulesRequired --requestPlayersRequired Q#0 Starting Q#0 Protocol: Valve Q#0 Options: { socketTimeout: 2000, attemptTimeout: 10000, maxAttempts: 1, ipFamily: 0, protocol: 'valve', requestRules: true, type: 'thefront', requestPlayersRequired: true, requestRulesRequired: true, host: '218.93.208.188', port: 27015, debug: true } Q#0 DNS Lookup: 218.93.208.188 Q#0 Raw IP Address: 218.93.208.188 Q#0 Requesting info ... 218.93.208.188:27015 UDP(52905)--> Buffer length: 25 bytes ff ff ff ff 54 53 6f 75 72 63 65 20 45 6e 67 69 6e 65 20 51 75 T S o u r c e E n g i n e Q u 65 72 79 00 e r y 218.93.208.188:27015 <--UDP(52905) Buffer length: 9 bytes ff ff ff ff 41 5b 58 ab 5b A [ X [ Q#0 Registered RTT: 445ms Q#0 Received full packet Q#0 Received 0x41 expected 0x49 Q#0 Received new challenge key: 0x5bab585b Q#0 UDP send finished by callback 218.93.208.188:27015 UDP(52905)--> Buffer length: 29 bytes ff ff ff ff 54 53 6f 75 72 63 65 20 45 6e 67 69 6e 65 20 51 75 T S o u r c e E n g i n e Q u 65 72 79 00 5b 58 ab 5b e r y [ X [ 218.93.208.188:27015 <--UDP(52905) Buffer length: 208 bytes ff ff ff ff 49 11 39 30 31 38 30 30 30 34 38 33 39 37 31 32 37 I 9 0 1 8 0 0 0 4 8 3 9 7 1 2 7 39 35 00 43 6f 6f 6f 6c 4d 61 70 00 50 72 6f 6a 65 63 74 57 61 9 5 C o o o l M a p P r o j e c t W a 72 00 50 72 6f 6a 65 63 74 57 61 72 00 00 00 00 c8 00 64 77 00 r P r o j e c t W a r d w 00 31 2e 30 2e 30 2e 30 00 b1 0d bb 1b 68 50 92 3c 62 40 01 42 1 . 0 . 0 . 0 h P < b @ B 55 49 4c 44 49 44 3a 30 2c 4f 57 4e 49 4e 47 49 44 3a 39 30 31 U I L D I D : 0 , O W N I N G I D : 9 0 1 38 30 30 30 34 38 33 39 37 31 32 37 39 35 2c 4f 57 4e 49 4e 47 8 0 0 0 4 8 3 9 7 1 2 7 9 5 , O W N I N G 4e 41 4d 45 3a 39 30 31 38 30 30 30 34 38 33 39 37 31 32 37 39 N A M E : 9 0 1 8 0 0 0 4 8 3 9 7 1 2 7 9 35 2c 53 45 53 53 49 4f 4e 46 4c 41 47 53 3a 37 31 35 2c 47 61 5 , S E S S I O N F L A G S : 7 1 5 , G a 6d 65 4d 6f 64 65 5f 73 3a 50 56 50 2c 42 65 61 63 6f 6e 50 6f m e M o d e _ s : P V P , B e a c o n P o 72 74 5f 69 3a 34 37 38 38 36 00 5e de 22 00 00 00 00 00 r t _ i : 4 7 8 8 6 ^ " Q#0 Registered RTT: 766ms Q#0 Received full packet Q#0 Received 0x49 expected 0x49 Q#0 UDP send finished by callback Q#0 INFO: { protocol: 17, folder: 'ProjectWar', game: 'ProjectWar', appId: 2285150, numplayers: 0, numbots: 0, listentype: 'd', environment: 'w', secure: 0, version: '1.0.0.0', steamid: '90180004839712795', tags: [ 'BUILDID:0', 'OWNINGID:90180004839712795', 'OWNINGNAME:90180004839712795', 'SESSIONFLAGS:715', 'GameMode_s:PVP', 'BeaconPort_i:47886' ] } Q#0 Requesting player list ... 218.93.208.188:27015 UDP(52905)--> Buffer length: 9 bytes ff ff ff ff 55 5b 58 ab 5b U [ X [ 218.93.208.188:27015 <--UDP(52905) Buffer length: 6 bytes ff ff ff ff 44 00 D Q#0 Registered RTT: 565ms Q#0 Received full packet Q#0 Received 0x44 expected 0x44 Q#0 UDP send finished by callback Q#0 Requesting rules ... 218.93.208.188:27015 UDP(52905)--> Buffer length: 9 bytes ff ff ff ff 56 5b 58 ab 5b V [ X [ 218.93.208.188:27015 <--UDP(52905) Buffer length: 371 bytes ff ff ff ff 45 0d 00 42 65 61 63 6f 6e 50 6f 72 74 5f 69 00 34 E B e a c o n P o r t _ i 4 37 38 38 36 00 43 4f 4e 4d 45 54 48 4f 44 00 50 32 50 00 46 53 7 8 8 6 C O N M E T H O D P 2 P F S 65 72 76 65 72 49 6e 66 6f 44 61 74 61 5f 47 61 6d 65 44 65 73 e r v e r I n f o D a t a _ G a m e D e s 63 5f 73 00 e4 b8 8d e5 b9 b2 e9 9a 8f e4 be bf e7 8e a9 ef bc c _ s 8c e8 b6 85 e5 a4 a7 e8 83 8c e5 8c 85 00 46 53 65 72 76 65 72 F S e r v e r 49 6e 66 6f 44 61 74 61 5f 48 61 73 50 57 44 5f 62 00 66 61 6c I n f o D a t a _ H a s P W D _ b f a l 73 65 00 46 53 65 72 76 65 72 49 6e 66 6f 44 61 74 61 5f 4d 6f s e F S e r v e r I n f o D a t a _ M o 64 4c 69 73 74 5f 69 00 30 00 46 53 65 72 76 65 72 49 6e 66 6f d L i s t _ i 0 F S e r v e r I n f o 44 61 74 61 5f 54 61 67 73 5f 73 00 31 00 47 61 6d 65 4d 6f 64 D a t a _ T a g s _ s 1 G a m e M o d 65 5f 73 00 50 56 50 00 4f 57 4e 49 4e 47 49 44 00 39 30 31 38 e _ s P V P O W N I N G I D 9 0 1 8 30 30 30 34 38 33 39 37 31 32 37 39 35 00 4f 57 4e 49 4e 47 4e 0 0 0 4 8 3 9 7 1 2 7 9 5 O W N I N G N 41 4d 45 00 39 30 31 38 30 30 30 34 38 33 39 37 31 32 37 39 35 A M E 9 0 1 8 0 0 0 4 8 3 9 7 1 2 7 9 5 00 50 32 50 41 44 44 52 00 30 2e 30 2e 30 2e 30 00 50 32 50 50 P 2 P A D D R 0 . 0 . 0 . 0 P 2 P P 4f 52 54 00 34 37 38 38 35 00 53 65 72 76 65 72 4e 61 6d 65 5f O R T 4 7 8 8 5 S e r v e r N a m e _ 73 00 5b e4 ba 91 e6 a2 a6 e9 98 81 5d 31 2e 31 37 e6 97 a0 e6 s [ ] 1 . 1 7 8e 89 e5 8d 81 e5 80 8d 31 30 e5 80 8d 50 56 45 7c 51 51 e7 be 1 0 P V E | Q Q a4 36 38 30 34 38 38 31 36 36 7c e7 a7 92 e9 80 a0 00 53 45 53 6 8 0 4 8 8 1 6 6 | S E S 53 49 4f 4e 46 4c 41 47 53 00 37 31 35 00 S I O N F L A G S 7 1 5 Q#0 Registered RTT: 425ms Q#0 Received full packet Q#0 Received 0x45 expected 0x45 Q#0 UDP send finished by callback Q#0 Size of players array: 0 Q#0 Size of bots array: 0 Q#0 Query was successful { "name": "90180004839712795", "map": "CooolMap", "password": false, "raw": { "protocol": 17, "folder": "ProjectWar", "game": "ProjectWar", "appId": 2285150, "numplayers": 0, "numbots": 0, "listentype": "d", "environment": "w", "secure": 0, "version": "1.0.0.0", "steamid": "90180004839712795", "tags": [ "BUILDID:0", "OWNINGID:90180004839712795", "OWNINGNAME:90180004839712795", "SESSIONFLAGS:715", "GameMode_s:PVP", "BeaconPort_i:47886" ], "rules": { "BeaconPort_i": "47886", "CONMETHOD": "P2P", "FServerInfoData_GameDesc_s": "不干随便玩,超大背包", "FServerInfoData_HasPWD_b": "false", "FServerInfoData_ModList_i": "0", "FServerInfoData_Tags_s": "1", "GameMode_s": "PVP", "OWNINGID": "90180004839712795", "OWNINGNAME": "90180004839712795", "P2PADDR": "0.0.0.0", "P2PPORT": "47885", "ServerName_s": "[云梦阁]1.17无掉十倍10倍PVE|QQ群680488166|秒造", "SESSIONFLAGS": "715" } }, "maxplayers": 200, "players": [], "bots": [], "connect": "218.93.208.188:47885", "ping": 425 } ```
Maxence1502 commented 6 months ago

Any update on this bug ?

CosminPerRam commented 6 months ago

Unfortunately no, we would have to look if RCON provides this data and if so add this feature when we get RCON rolling into the lib.

Maxence1502 commented 3 months ago

I confirm that I still have the same issue today

xCausxn commented 3 months ago

I confirm that I still have the same issue today

RCON is still not something implemented in Gamedig, so if RCON is still needed to get the players then there is no change to be made unfortunately.

Maxence1502 commented 4 days ago

Any update on this ?