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
610 stars 145 forks source link

SCUM - Add Support #264

Open aarontigan opened 2 years ago

aarontigan commented 2 years ago

SCUM is built on Unreal4 however the query port is different for each server. Battlemetrics already shows that it works by having SCUM servers listed with statuses.

mmorrisontx commented 2 years ago

Do you have an example query ip and port? Seems like most existing query implementations just query a random rest API on someone's personal site for some reason. https://gist.github.com/HellBz/88dbe8dfe7d20f94fe1b7afdaf07eb7f

aarontigan commented 2 years ago

Do you have an example query ip and port? Seems like most existing query implementations just query a random rest API on someone's personal site for some reason. https://gist.github.com/HellBz/88dbe8dfe7d20f94fe1b7afdaf07eb7f

Battlemetrics seems to do it somehow. https://www.battlemetrics.com/servers/scum/13884134 I don't know if it's consistent but in this case the query port is 13 higher than the game port (28715 in this case).

mmorrisontx commented 2 years ago

The owner of the "random rest API" posted a bit of their work in german here: https://scumworld.de/article/598-scum-probleme-mit-statusanzeige-der-gameserver/

Unfortunately, it seems to be entirely based on reverse engineering, and the post is apparently obsolete now. This likely isn't something I'll be able to invest much time in solving without contributions.

xCausxn commented 2 years ago

Yeah I tried taking a brief look myself, and did some sharking.

Server List IP: 176.57.138.2 Server Port: 31337 Protocol: TCP

Sending 02030000 as hex to this will request the server listings, but as for parsing that response its still a work in progress.

Wanted to just leave that here if other people want to have a crack at it / work while I cannot :D

iMoD1998 commented 1 year ago

Yeah I tried taking a brief look myself, and did some sharking.

Server List IP: 176.57.138.2 Server Port: 31337 Protocol: TCP

Sending 02030000 as hex to this will request the server listings, but as for parsing that response its still a work in progress.

Wanted to just leave that here if other people want to have a crack at it / work while I cannot :D

Hello, I wanted to find the server list stuff myself so I ended up here.

Anyways, took a look at it and managed to figure a bunch of it out.

Hope it helps in someway 💯

https://gist.github.com/iMoD1998/50fc916904ccacf8a8a010e3d05aac65

dgibbs64 commented 11 months ago

I found this as well if it helps https://gist.github.com/HellBz/46f6c22a9da6592a9587fcac6e026b8f