/ARRCON

Lightweight Source RCON client that works on Windows, macOS, & Linux.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

ARRCON Banner

A lightweight cross-platform RCON client compatible with any game using the Source RCON Protocol.

GitHub release (latest by date) Mentioned in Awesome-Selfhosted Downloads

Release Workflow Status

Downloads  |  Wiki  |  Issues

Features

  • Highly configurable
  • Cross-Platform:
    • Windows
    • Linux
    • macOS
  • Works for any game using the Source RCON Protocol
  • Handles large packets without issue
  • Handles multi-packet responses without issue
  • Supports Minecraft Bukkit's colorized text
  • You can set delays in the INI file or directly on the commandline
  • Supports saving a server's connection info so you can connect to it with 1 word
    If you've ever used ssh's config file, this will be very familiar. (albeit with more sensible syntax)
    • This can be done in a text editor or entirely from the commandline
  • Can be used as a one-off from the commandline, or in an interactive console
    • Supports piped input using shell operators.
      For example; echo "help" | ARRCON -S myServer would send the help command to the myServer host
      • Piped commands are sent after any commands explicitly specified on the commandline
  • You can write scripts and manually execute them with the -f/--file options in addition to shell scripts
    • Commands are separated by newlines
    • Commands from script files are sent after any piped commands
    • Line comments can be written using semicolons ; or pound signs '#'
  • Shows an indicator when the server didn't respond to your command

Installation

Get the latest version for your OS from the releases page.
If you're using the Windows or MacOS versions, see the additional information below.

There is no installation process required, simply extract the archive to a location of your choice, then run it using a terminal emulator.
If you want to be able to run ARRCON from any working directory without specifying its location, you must add the location to your environment's PATH variable.

Windows

On newer versions of Windows, you may be required to "unblock" the executable before Windows will let you use it.
This is because the executable isn't signed with a Microsoft-approved signing certificate, which costs upwards of $300/year.
To unblock it, Right-Click on ARRCON.exe in the file explorer and click Properties at the bottom of the right-click menu.

Check the unblock box, then click Apply.

MacOS

If you're running macOS 10.9 or later, you must install gcc via HomeBrew or some other package manager!
If homebrew is installed, you can run this command to install and setup gcc automatically: brew install gcc

This is because Apple no longer includes libstdc++ by default as of macOS 10.9 (See #11), which is required for ARRCON to run.

Building from Source

See here for a brief guide on building ARRCON from source.

Usage

ARRCON is a CLI (Command-Line Interface) program, which means you need to run it through a terminal.

On Windows, you can use cmd.exe or powershell.exe by R+Clicking on the start menu and selecting "Command Prompt" or "PowerShell".

For more detailed usage instructions, see the Getting Started page on the wiki.

To see a list of commands, use ARRCON -h or ARRCON --help
To see a list of environment variables, their current values, and a description of each, use ARRCON --print-env

Modes

  • Interactive Shell

    Opens an interactive console session. You can send commands and view the responses in real-time.

    • Used by default when there are no command arguments.
    • Connection remains open until you disconnect or kill the process, or if the server closes.
  • One-Shot
    ARRCON Scripting Support
    This mode is designed for scripting, it sends commands directly from the commandline in sequential order before exiting.
    (You can also open an interactive shell at the same time with the -i / --interactive options.)

    Supported input methods:

    • Commandline Parameters
      These are any arguments that are not short/long-opts and not captured by short/long-opts.
    • Shell Scripts
    • Redirected input from STDIN
    • Script Files
      Splits commands by line, and allows comments using a semicolon ; or pound sign #.
      Comments are always considered line comments.
      Use the '-f' or '--file' options to specify a scriptfile to load.

Contributing

If you want to add a new feature, fix a bug, or just improve something that annoys you, feel free to submit pull requests and/or issues.

Feedback & Requests

Feel free to leave feedback on the issues tab!
There are a number of premade templates for the following situations:

Pull Requests

Feel free to submit a pull request if you've added a feature or fixed a bug with the project!
Contributions are always welcomed, I'll review it as soon as I see the notification.