RCONify is a Python-based bridge server that provides RCON (Remote Console) functionality to Minecraft Bedrock Edition servers, which do not natively support the RCON protocol.
This project allows you to remotely execute commands on a Bedrock server running in a screen
session and retrieve the output.
- RCON Support: Enables the use of standard RCON clients (e.g.,
mcrcon
) to connect to and execute commands on a Bedrock server. - Screen Integration: Interacts with the server console running within a
screen
session. - Intelligent Response Parsing: Intelligently parses the actual command response from the full screen output.
- Pure Python: Works with only the Python standard library, requiring no external dependencies.
- The RCONify server listens for connections from RCON clients on a specified port (default: 25575).
- When a client sends a command after authentication, RCONify injects the command into the Bedrock server's console using
screen -X stuff
. - After a short delay, it captures the entire screen content to a text file using
screen -X hardcopy
. - It then parses this text file—which contains a mix of server logs, the command, and its output—to extract only the relevant response lines.
- The extracted result is formatted according to the RCON protocol and sent back to the client.
- Python 3.x
screen
utility- A Minecraft Bedrock server running within a
screen
session
-
Clone the repository:
git clone https://github.com/dev-wantap/rconify.git cd rconify
-
Start the RCONify server: Run
main.py
and pass the name of thescreen
session where your Bedrock server is running as an argument.python3 main.py <screen_session_name>
- Example: If your
screen
session is namedbedrock
:python3 main.py bedrock
- Example: If your
-
Connect with an RCON client: You can now use an RCON client like
mcrcon
to connect to the server.mcrcon -H 127.0.0.1 -P 25575 -p password "list"
- The default password is
password
. You can change it in thercon_server.py
source file.
- The default password is
The RCON server's host, port, and password can be modified directly at the top of the rcon_server.py
file.
# rcon_server.py
class RCONServer:
def __init__(self, screen_handler, host='0.0.0.0', port=25575, password='password'):
# ...