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

Valheim server no longer querying successfully following 0.147.3 server update #215

Closed jpwmeta closed 3 years ago

jpwmeta commented 3 years ago

Discovered this using the monitor function of LinuxGSM which relies on gamedig, but I see the same results running the following command: gamedig --type valheim 0.0.0.0:2457

Running sudo ss -tulpn shows the udp port with the appropriate service: udp UNCONN 7680 0 0.0.0.0:2457 0.0.0.0:* users:(("valheim_server.",pid=5493,fd=22))

Seems like this is possibly an issue with the gamedig query.

jpwmeta commented 3 years ago

Here is the debug output:


vhserver@mubuntu:~$ gamedig --type valheim 127.0.0.1:2457 --debug
Q#0 Starting
Q#0 Protocol: Valve
Q#0 Options: {
  socketTimeout: 2000,
  attemptTimeout: 10000,
  maxAttempts: 1,
  port: 2458,
  protocol: 'valve',
  type: 'valheim',
  host: '127.0.0.1',
  debug: true
}
Q#0 DNS Lookup: 127.0.0.1
Q#0 Raw IP Address: 127.0.0.1
Q#0 Requesting info ...
Q#0 127.0.0.1:2458 UDP-->
Q#0 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

Q#0 UDP timeout detected
Q#0 Query failed with error Error: UDP - Timed out after 2000ms
    at Timeout.<anonymous> (/usr/lib/node_modules/gamedig/lib/Promises.js:7:25)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
Q#1 Starting
Q#1 Protocol: Valve
Q#1 Options: {
  socketTimeout: 2000,
  attemptTimeout: 10000,
  maxAttempts: 1,
  port: 2457,
  protocol: 'valve',
  type: 'valheim',
  host: '127.0.0.1',
  debug: true
}
Q#1 DNS Lookup: 127.0.0.1
Q#1 Raw IP Address: 127.0.0.1
Q#1 Requesting info ...
Q#1 127.0.0.1:2457 UDP-->
Q#1 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

Q#1 UDP timeout detected
Q#1 Query failed with error Error: UDP - Timed out after 2000ms
    at Timeout.<anonymous> (/usr/lib/node_modules/gamedig/lib/Promises.js:7:25)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
Error: Failed all 2 attempts
    at QueryRunner.run (/usr/lib/node_modules/gamedig/lib/QueryRunner.js:88:21)
Attempt #1 - Port=2458 Retry=0:
Error: UDP - Timed out after 2000ms
    at Timeout.<anonymous> (/usr/lib/node_modules/gamedig/lib/Promises.js:7:25)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
Attempt #2 - Port=2457 Retry=0:
Error: UDP - Timed out after 2000ms
    at Timeout.<anonymous> (/usr/lib/node_modules/gamedig/lib/Promises.js:7:25)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
mmorrisontx commented 3 years ago

I just tried a server off one of the public lists (34.73.85.65), and it worked fine and is reportedly on 0.147.3 🤔

$ gamedig --type valheim 34.73.85.65 --pretty
{
  "name": "ValhallaRP",
  "map": "ValhallaRP",
  "password": true,
  "raw": {
    "protocol": 17,
    "folder": "valheim",
    "game": "Valheim",
    "appId": 892970,
    "numplayers": 28,
    "numbots": 0,
    "listentype": "d",
    "environment": "l",
    "secure": 0,
    "version": "1.0.0.0",
    "steamid": "90143600738196483",
    "tags": "0.147.3"
  },
  "maxplayers": 50,
  "players": [
...
jpwmeta commented 3 years ago

I just tried setting my server from private to public and it's working now. It looks like it's only an issue on private servers.

mmorrisontx commented 3 years ago

Strange, not sure if there's anything we can do about that. I assume you can still use a password on a public server?

jpwmeta commented 3 years ago

Yes, without mods a password is required regardless of server type.

bbashy commented 3 years ago

Valheim servers do not report anything if -public 0 is set. Found that out after not being able to query our free servers on https://fshost.me I just force -public 1 since there's always a password to join it.

mmorrisontx commented 3 years ago

Added a note to the readme about valheim requiring the public flag.