Rcon: Difference between revisions

From wiki.vg
Jump to navigation Jump to search
imported>Jonathanyc
(Fixed formatting and added another implementation)
imported>Fenhl
(Fenhl moved page Rcon to RCON: fixed capitalization)
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
RCON is a protocol introduced in 1.9pre4 for the purpose of remote administration of a server. It's basically a shitty implementation of the Source RCON protocol [http://developer.valvesoftware.com/wiki/Source_RCON_Protocol]
#REDIRECT [[RCON]]
== Server Config ==
 
    enable-rcon=true
    rcon.password=<your password>
 
== Packet Format ==
 
Integers are little-endian, in contrast with the [[Protocol|Beta protocol]].
 
Responses are sent back with the same Request ID that you send.
 
In the event of an auth failure (i.e. your login is incorrect, or you're trying to send commands without first logging in), request ID will be set to <code>-1</code>
 
{| class="wikitable"
|-
! Field name
! Field Type
! Notes
|-
| Length
| int
| Length of ''remainder'' of packet
|-
| Request ID
| int
| Client-generated ID
|-
| Type
| int
| <code>3</code> for login, <code>2</code> to run a command
|-
| Payload
| byte[]
| ASCII text
|-
| 2-byte pad
| byte, byte
| Two null bytes
|}
 
== Packets ==
 
=== 3: Login ===
 
Outgoing payload: password.
 
If the server returns a packet with the same request ID, auth was successful (note: packet type is 2, not 3). If you get an request ID of -1, auth failed (wrong password).
 
=== 2: Command ===
 
Outgoing payload should be the command to run, e.g. <code>time set 0</code>
 
Incoming payload is the output of the command, though many commands return nothing, and there's no way of detecting unknown commands.
 
== Implementation details ==
 
Maximum request length: 1460 (giving a max payload length of 1446)
 
Code exists in the notchian server to split large responses (>4096 bytes) into multiple smaller packets. However, the code that actually encodes each packet expects a max length of 1248, giving a max response payload length of 1234 bytes.
 
== Example implementations ==
 
* https://github.com/barneygale/MCRcon (python, basic, synchronous)
* https://gist.github.com/1292348 (php, basic, synchronous)
* https://github.com/tehbeard/node-rcon (node.js, basic, asyncronous)
* https://bitbucket.org/jonathanyc/rcon.js (RingoJS, synchronous, BSD-licensed)

Latest revision as of 18:10, 8 October 2016

Redirect to: