An RCON client library.


Keywords
python, rcon, client
License
GPL-3.0
Install
pip install rcon==2.4.6

Documentation

Documentation Status

rcon

An RCON client implementation.

Requirements

rcon requires Python 3.10 or higher.

Documentation

Documentation is available on readthedocs.

Installation

Install rcon from the AUR or via:

pip install rcon

Quick start

The RCON protocols are used to remotely control game servers, i.e. execute commands on a game server and receive the respective results.

Source RCON

from rcon.source import Client

with Client('127.0.0.1', 5000, passwd='mysecretpassword') as client:
    response = client.run('some_command', 'with', 'some', 'arguments')

print(response)

Async support

If you prefer to use Source RCON in an asynchronous environment, you can use rcon().

from rcon.source import rcon

response = await rcon(
    'some_command', 'with', 'some', 'arguments',
    host='127.0.0.1', port=5000, passwd='mysecretpassword'
)
print(response)

BattlEye RCon

from rcon.battleye import Client

with Client('127.0.0.1', 5000, passwd='mysecretpassword') as client:
    response = client.run('some_command', 'with', 'some', 'arguments')

print(response)

Handling server messages

Since the BattlEye RCon server will also send server messages to the client alongside command responses, you can register an event handler to process those messages:

from rcon.battleye import Client
from rcon.battleye.proto import ServerMessage

def my_message_handler(server_message: ServerMessage) -> None:
    """Print server messages."""
    
    print('Server message:', server_message)

with Client(
        '127.0.0.1',
        5000,
        passwd='mysecretpassword',
        message_handler=my_message_handler
) as client:
    response = client.run('some_command', 'with', 'some', 'arguments')

print('Response:', response)

Have a look at rcon.battleye.proto.ServerMessage for details on the respective objects.