ts-rcon is a simple library for connecting to RCON servers in node.js implemented in TypeScript. Based on pushrax/node-rcon. It implements the protocol used by Valve's Source and GoldSrc engines, as well as many other game servers.
It was originally created to connect to Minecraft's RCON server.
npm install ts-rcon
yarn add ts-rcon
Some games use TCP and some use UDP for their RCON implementation. To tell node-rcon which protocol to use, pass it an options object like so:
const options = {
tcp: false, // false for UDP, true for TCP (default true)
challenge: false, // true to use the challenge protocol (default true)
};
const client = new Rcon(host, port, password, options);
client.on('auth', () => {
// Awaiting only works when using tcp
const players = await client.send('listplayers');
console.log(players);
// When using UDP, it should be used this way
client.on('response', (str) => {
console.log(str);
});
client.send('listplayers');
});
client.connect();
Here's a non-exhaustive list of which games use which options:
Game | Protocol | Challenge |
---|---|---|
Any Source game | TCP | N/A |
Minecraft | TCP | N/A |
Any GoldSrc game | UDP | Yes |
Call of Duty | UDP | No |
Ark: Survival Evolved | TCP | No |
Source games include CS:S, CS:GO, TF2, etc. GoldSrc games include CS 1.6, TFC, Ricochet (lol), etc.
If there's a game you know uses a certain protocol, feel free to submit a pull request.
Please submit a bug report for any game you try that doesn't work!