@trezub/ts-rcon
Version:
Rcon client implemented in Node.js with TypeScript
66 lines (47 loc) • 2.2 kB
Markdown
# ts-rcon
[](https://img.shields.io/npm/v/@trezub/ts-rcon) [](https://github.com/trezub/ts-rcon/actions/workflows/main.yml/badge.svg)
ts-rcon is a simple library for connecting to RCON servers in node.js implemented in TypeScript.
Based on [pushrax/node-rcon](https://github.com/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.
[RCON Protocol Docs](https://developer.valvesoftware.com/wiki/Source_RCON_Protocol)
## Installation
```shell
npm install ts-rcon
yarn add ts-rcon
```
## Usage
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:
```javascript
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!