ARCON.js is a lightweight, event-based RCON client for Arma III servers designed to be reliable and easy to use.
ARCON.js can be installed via npm using npm install arcon.js
An RCON connection can be established by instantiating the Arcon
class and calling the connect
function.
Property | Description | type | required | default |
---|---|---|---|---|
ip | The IP address of the RCON server. | string | true | |
port | The port of the RCON server. | number | true | |
password | The password of the RCON server. | string | true | |
autoReconnect | Whether to automatically reconnect on disconnects. Excludes incorrect password. | bool | false | true |
playerUpdateInterval | Time (in ms) between sending a players command to the server. |
number | false | 5000 |
import { Arcon } from 'arcon.js';
const connection = new Arcon({
ip: '127.0.0.1',
port: 2312,
password: '12345'
});
connection.connect();
Being an event-based library, there are multiple events that you can subscribe to. A list of all events can be found here.
Note that if you do not add a listener to the error
event, your application will crash if an error is ever created.
import { Arcon, Player, BeLog } from 'arcon.js';
const connection = new Arcon({
ip: '127.0.0.1',
port: 2312,
password: '12345'
});
connection.on('connected', () => {
console.log('Connected!');
});
connection.on('disconnected', () => {
console.log('Disconnected!');
});
connection.on('error', (error: Error) => {
console.error(error);
});
connection.on('players', (players: Player[]) => {
console.log(players);
});
connection.on('playerConnected', (player: Player) => {
console.log(player);
});
connection.on('playerDisconnected', (player: Player, reason: string) => {
// If a player disconnects by themself, reason is "disconnected".
// Otherwise it will be parsed from text.
console.log(player, reason);
});
connection.on(
'playerUpdated',
(player: Player, [pingUpdate, verifiedUpdate, lobbyUpdate]: [boolean, boolean, boolean]) => {
if (pingUpdate) console.log(player.ping);
}
);
connection.on('beLog', (log: BeLog) => {
console.log(log);
});
connection.on('playerMessage', (player: Player, channel: string, message: string) => {
console.log(`(${channel}) ${player.name}: ${message}`);
});
connection.on('adminMessage', (id: number, channel: string, message: string) => {
console.log(id, channel, message);
});
connection.connect();