Factorio Discord Relay (FDR), remade in C++! You can view the original project here.
FDR is a simple executable (NOT a Factorio mod) which allows you to connect your Factorio server to Discord!
Powered by rconpp
FDR Works for all platforms! That means you can run this on Windows/Linux/UNIX, whatever you like!
- Support for all commands.
- Achievements still enabled when installed.
- Talk to Discord from Factorio and vice versa.
Ideally, you should run this on the same machine as the Factorio server. RCON is extremely insecure as it sends all the data as plain text over the network, meaning anyone can see what you're doing.
- D++ 10.0.30 (If you're on Linux, this is automatically packaged with FDR, meaning you do not need D++ installed).
- A Factorio Server.
- A Discord Bot with the
Message Contentand theServer Membersintent on. - A channel for messages.
- RCON enabled on the Factorio server (Add
--rcon-port <port (recommend: 27015)> --rcon-password <password>to the arguments when running the server).
If you're on Linux/Unix, you need to install D++ first. You can visit this page to find out how you can install D++ for your OS.
Download the latest executable from the releases tab.
Once downloaded, place it anywhere you like. Create a config.cfg file next to the executable.
Your config.cfg should look something like this:
ip=127.0.0.1
port=27015
pass=changeme
bot_token=<token_here>
msg_channel=<channel_id>
allow_achievements=true
console_log_path=<log_path>
admin_role=<role_id>
From here, you can do ./fdr and you should see FDR up and running! If everything went well, FDR should have sent a message in your Factorio and Discord chat!
This section will tell you what each part of the config means.
ip,port, andpass, are your RCON connection config lines. These are essential for making sure FDR can connect to your Factorio server.bot_tokenis the Discord bot's token that you want to use for this.msg_channelis the ID of the channel that will be used for sending and receiving messages.allow_achievementsis eithertrueorfalse. If true (default), messages will be prefixed with<server>:. If false, messages will look tidier.console_log_pathshould be pointing to a log file created by adding--console-log=<path>to your server's arguments. Whatever path you give to that, setconsole_log_pathto that.admin_roleis the ID of a role that is allowed to execute the/command <any_factorio_command>command in Discord.
If you're wanting to contribute to this project, you should follow these steps below to make sure you can test your changes.
First, Install D++ on your system.
If you're on Linux/UNIX, refer to this page to find out how you can install D++ for your OS.
If you're on Windows, you need to install dpp from VCPKG. You can follow this page for more information.
Once that's done, fork the project and clone your fork!
Once you've cloned your fork, make a new branch and then commit/push your changes to that new branch. Once you're done, make a pull request!