Tiiffi 6fed74ba74 Implement select() loop to receive all incoming packets:
Send a "multipacket guard" - an empty packet with an invalid 'cmd' field
and a unique packet ID to trigger a reply from the server once the previous
command's reply has been fully sent.

Valve returns an empty payload, while Minecraft includes an error message in the payload.

This workaround ensures that all packets related to the last valid command
are received from the server, avoiding the need to wait for the select() timeout.
2024-12-06 08:47:45 +02:00
2024-12-02 10:13:38 +02:00
2024-12-02 10:40:51 +02:00
2024-11-09 13:48:23 +02:00
2024-11-09 13:48:23 +02:00
2024-11-09 13:48:23 +02:00
2024-12-02 10:35:00 +02:00
2024-12-02 10:31:38 +02:00

mcrcon

mcrcon is a command-line rcon client intended for remote server administration and maintenance automation.

Though originally developed for Minecraft servers, it also works with a variety of other servers using the Valve or Minecraft-style rcon protocol.


Installing

Binary releases

Pre-built binaries are provided for Linux and Windows: https://github.com/Tiiffi/mcrcon/releases/latest

Via package manager

See https://pkgs.org/download/mcrcon and https://repology.org/project/mcrcon/packages for available packages in various Linux distros (note that some packages might be outdated).

Building from sources
git clone https://github.com/Tiiffi/mcrcon.git
cd mcrcon
make

# install is optional
sudo make install

Check BUILDING.md for more details.


Usage

mcrcon [OPTIONS] [COMMANDS]

Sends rcon commands to Minecraft server.

Option:
  -H            Server address (default: localhost)
  -P            Port (default: 25575)
  -p            Rcon password
  -t            Terminal mode
  -s            Silent mode
  -c            Disable colors
  -r            Output raw packets
  -w            Wait for specified duration (seconds) between each command (1 - 600s)
  -h            Print usage
  -v            Version information

Server address, port and password can be set using following environment variables:

MCRCON_HOST
MCRCON_PORT
MCRCON_PASS
Notes:
  • mcrcon will start in terminal mode if no commands are given
  • Command-line options will override environment variables
  • Rcon commands with spaces must be enclosed in quotes
Example:

Send three commands ("say", "save-all", "stop") and wait five seconds between the commands:

mcrcon -H my.minecraft.server -p password -w 5 "say Server is restarting!" save-all stop

Tip

Enable RCON on Minecraft server by adding following lines to server.properties configuration file.

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

Contact

Tip

When reporting issues, please provide the following information:

  • Version of mcrcon: Please specify the precise version number
  • Game: Indicate the specific game server you're using (e.g., Minecraft, Valve Source Engine game, ARK, ...)
  • Server version: Provide the exact version of the game server
  • Mods and Extensions: List all mods and extensions used, including their versions
  • Issue Description: Clearly describe the problem you're encountering and the expected behavior.
  • Steps to reproduce

If you're tech-savvy, consider providing a packet capture file (PCAP). Remember to use a fake password.


License

This project is licensed under the zlib License - see the LICENSE file for details.

Languages
C 85.9%
Roff 8%
Makefile 6.1%