UNPKG

@trezub/ts-rcon

Version:

Rcon client implemented in Node.js with TypeScript

66 lines (47 loc) 2.2 kB
# ts-rcon [![npm](https://img.shields.io/npm/v/@trezub/ts-rcon)](https://img.shields.io/npm/v/@trezub/ts-rcon) [![CI](https://github.com/trezub/ts-rcon/actions/workflows/main.yml/badge.svg)](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!