Skip to main content

Bidirectional IRC bridge for Factorio

Project description

FactoIRC is a bidirectional IRC bridge between Factorio and IRC. It comes as a plugin for the irc3 python module.

It can join one or more channels and forward messages back and forth between IRC and Factorio.

Some IRC commands are also provided :

  • !rcon: Execute an RCON command and return the result.

  • !players: Get the list of the currently online players.

FactoIRC uses the RCON protocol introduced in Factorio 0.13 to forward messages from IRC to Factorio.

As a result, FactoIRC will not work with Factorio 0.12 and earlier versions.

Forwarding Factorio chat messages to IRC requires access to the Factorio server output which can be done with two methods depending on your setup.

Installation

You’ll need to have Python 3.5 (or later) which can be obtained through your distribution’s package manager or downloaded from https://www.python.org/ (for Windows users).

On Windows, make sure to check the “Add Python 3.x to PATH” checkbox when installing.

Once Python is installed, FactoIRC can be installed using

$ pip3 install factoirc

Configuration

Configuration is done using the config.ini file. A config.example.ini file is provided as an example.

Depending on your setup, you will have to use either the stdin or the systemd method.

Method 1: stdin

This method reads the Factorio output from the standard input stream, it also supports reading from a file via shell redirection.

You will need to connect the Factorio server output to the FactoIRC bot.

This can be achieved using a command such as:

$ factorio --rcon-port=27015 --rcon-password=password --start-server=save.zip | irc3 config.ini

Alternatively, you might want to separate execution of Factorio and the bot using an intermediate log file:

$ factorio ... > log.txt
$ irc3 config.ini < log.txt

Warning: do NOT use the factorio-current.log file created by Factorio, as it does not contain the chat log.

factorio-init users

factorio-init stores the server output in a file named server.out, which you can use as input:

$ irc3 config.ini < /opt/factorio/server.out

Note that the systemd service for factorio-init does not save the output into the journal, so you can’t use the systemd method with it.

Method 2: systemd journal

This method applies only if your Factorio server runs under systemd (only for Linux machines) and its output is stored in the journal.

In this case, FactoIRC can directly read the log from the journal.

You’ll need the following options in your configuration file:

[factoirc]
method = systemd
unit = factorio.service

For this method to work, the python-systemd module is required and can be installed via pip:

$ pip3 install python-systemd

You can then start FactoIRC:

$ irc3 config.ini

Debugging

irc3 can be started with the -v flag to show more log messages (including those generated by FactoIRC).

IRC raw traffic can be shown with -r.

Try irc3 -h for the full list of options.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

factoirc-0.3.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

factoirc-0.3-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file factoirc-0.3.tar.gz.

File metadata

  • Download URL: factoirc-0.3.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for factoirc-0.3.tar.gz
Algorithm Hash digest
SHA256 99278365351720e75bfdb3e0ac1e57c4562e629fae89bf79c04792cff36b7455
MD5 519eded0e2c75345396a4b3824108d4c
BLAKE2b-256 a8a0c8b46316798072d9d8313d98110d35f74c1a47d3f4ab3a8be4976d0589c8

See more details on using hashes here.

File details

Details for the file factoirc-0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for factoirc-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f8eed7c0f3b547548516d04d1302d93ce3d0aeb3d3de4adbaa45a222f11ccd5a
MD5 0efdad9e8e94223a51d4df69a4be90dd
BLAKE2b-256 0cf0855a74a063529e056c7ac2bd3c4e542603ca5746fdd2895a71382a23b479

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page