https://www.npmjs.com/package/sourcequery but it doesn't suck
Valve docs: https://developer.valvesoftware.com/wiki/Server_queries
Install with npm:
npm install mbr-0001/sourcequery
Example usage:
const SourceQuery = require('sourcequery');
const query = new SourceQuery('127.0.0.1', 28015]);
//you can also provide timeout in ms [default 1000]
//and the option to automatically close the socket after the last request [default true]
query.getInfo().then(info => console.log('Server Info:', info));
query.getPlayers().then(players => console.log('Online Players:', players));
query.getRules().then(rules => console.log('Server Rules:', rules));
//if autoclose is false this method has to be called to close the socket
//query.close();
//to check if the server is "there" you can do the following
SourceQuery.preflightCheck('127.0.0.1', 28015).then(() => console.log("server is alive!")).catch(() => console.log("server is down!"));| AppID | Game | Notes |
|---|---|---|
| x | All HL1/HL2 games and mods | |
| 10 | Counter-Strike 1.6 | |
| 20 | Team Fortress Classic | |
| 440 | Team Fortress 2 | |
| 550 | Left 4 Dead | |
| 550 | Left 4 Dead 2 | |
| 730 | Counter-Strike: Global Offensive | |
| 2400 | The Ship | |
| 4000 | Garry's Mod | |
| 17710 | Nuclear Dawn | |
| 70000 | Dino D-Day | |
| 33900 | Arma 2 | |
| 107410 | Arma 3 | rules are broken thanks to devs |
| 211820 | Starbound | rules and players cannot be requested at the same time |
| 244850 | Space Engineers | |
| 251570 | 7 Days to Die | |
| 252490 | Rust | |
| 282440 | Quake Live | |
| 304930 | Unturned | |
| 346110 | ARK: Survival Evolved | |
| 393380 | Squad | |
| 418460 | Rising Storm 2: Vietnam | |
| 440900 | Conan Exiles | Server does not send rules |
| 529180 | Dark and Light | |
| 736220 | Post Scriptum | |
| 834910 | ATLAS | |
| 892970 | Valheim | Server does not send rules |
- Compression is not supported, I don't know of any games that use it