rminks/rcon

Source RCON Protocol library for laravel

Maintainers

Package info

github.com/RMinksCss/Laravel-Rcon-Protocol

Type:package

pkg:composer/rminks/rcon

Statistics

Installs: 21

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 1

v1.0.0 2024-04-21 07:45 UTC

This package is auto-updated.

Last update: 2026-03-21 11:57:48 UTC


README

All credits to AnvilM (https://github.com/AnvilM/PHP_RCON/tree/main), I upload my own version according to my own requirements, preferences and needs.

Source RCON Protocol library for Laravel

Install

You can get this package using composer

composer require rminks/rcon

Configuration

Setting in valve games (Engine Source)

By default, SRCDS listens for RCON connections on TCP port 27015. If the server's port number is changed using the -port option, the RCON port will change as well. SRCDS will always refuse any RCON connection attempt originating from an IP on its banlist. If the rcon_password cvar is written to for any reason, the server will immediately close all authenticated RCON connections. This happens even if the new value of rcon_password is identical to the old one. These connections will need to be re-opened and re-authenticated before any further commands can be issued. Connections which have not been authenticated yet are not dropped. If the password was changed remotely, the server will not respond to the command which caused the password to change. if rcon_password is not setted, the gameserver gonna reject all connections

Setting in Minecraft

To use RCON on your server, you need to enable it and configure it in your Minecraft server settings.

In the file server.properties

rcon.port=25575
enable-rcon=true
rcon.password=123

Getting started

Create connection

To create an RCON connection to a minecraft server, you need to create an object of the RCON class.

use RMinks\RCON\RCON;

$Ip = '127.0.0.1'; //Server IP
$Port = 25575; //RCON port
$Password = '123'; //RCON password
$Timeout = 30; //Timeout in ms 

$RCON = new RCON($Ip, $Port, $Password, $Timeout);

Send commands

To send a command to the server, use this method of the RСON class. This method will return the response from the server.

use RMinks\RCON\RCON;

...

$RCON->sendCommand('map de_dust2');//Example for CS:S
$RCON->sendCommand('time set day');//Example for Minecraft

Server Responses

All responses

To get all responses from the server use the following method

use RMinks\RCON\RCON;

...

$Response = $RCON->ResponseService->getAllResponses();

Last response

To get last response from the server use the following method

use RMinks\RCON\RCON;

...

$Response = $RCON->ResponseService->getLastResponse();

Response by id

You can get a specific server response from a list if you have the ID of that response.

use RMinks\RCON\RCON;

...

$Response = $RCON->ResponseService->getResponse(3);

Example

namespace App\Http\Controllers;

use RMinks\RCON\RCON;

class RCONController extends Controller
{
    public function setDay()
    {
        $Ip = '127.0.0.1'; //Server IP
        $Port = 25575; //RCON port
        $Password = '123'; //RCON password
        $Timeout = 30; //Timeout in ms 

        $RCON = new RCON($Ip, $Port, $Password, $Timeout); //Create connection

        $RCON->sendCommand('time set day'); //Send command

        $Response = $RCON->ResponseService->getLastResponse(); //Get last response

        echo $Response;
    }
}

As a result of executing this code you should get the following result

    Set the time to 1000

Example 2

namespace App\Http\Controllers;

use RMinks\RCON\RCON;

class RCONController extends Controller
{
    public function changeMap()
    {
        $Ip = '192.168.1.39'; //Server IP
        $Port = 27015; //RCON port
        $Password = '12345'; //RCON password
        $Timeout = 30; //Timeout in ms 

        $RCON = new RCON($Ip, $Port, $Password, $Timeout); //Create connection

        $RCON->sendCommand('map de_dust2'); //Send command

        $Response = $RCON->ResponseService->getLastResponse(); //Get last response

        echo $Response;
        dd($Response);//For debug
    }
}

As a result of executing this code you should get the following result

    rcon from "x.x.x.x:xxxx": command "map de_dust2"

    L dd/mm/yyyy - hr:m:s: -------- Mapchange to de_dust2 --------