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 achieved using several methods depending on your setup.

Compatibility

On Windows, forwarding in the IRC -> Factorio direction is only supported starting from Factorio 0.15 and using the console log (–console-log) : https://forums.factorio.com/viewtopic.php?f=49&t=37108.

Join/leave messages should work with Factorio 0.13 but are broken in 0.14 (https://forums.factorio.com/viewtopic.php?f=6&t=30697). Factorio 0.15 brings them back.

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 and contains extensive documentation.

Depending on your setup, you will have to use one of the file, stdin or systemd methods.

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

Method 3: stdin

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

[factoirc]
method = stdin

You will need to connect the Factorio chat log output to the FactoIRC bot:

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

Forwarding customization

You can customize the forwarding of messages for the different game and irc actions, see config.example.ini for more information.

Running

To run FactoIRC, you just need to use the irc3 command with a FactoIRC-enabled config file (see config.example.ini)

$ irc3 config.ini

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.6.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

factoirc-0.6-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for factoirc-0.6.tar.gz
Algorithm Hash digest
SHA256 1e4301244c3254085e2bbdc17390925b9fa499dc0f7da311518079e9252a2d1b
MD5 541563f761800bc3196eb8550dddbaed
BLAKE2b-256 e0187a5ca1eb6f5074d2bfd0f5659ddbcf4e375c8ffd691bd15ef4306c2fa18c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for factoirc-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d10f85cadce6abeb1d1087d5fa993951b4919d02e6e0bc9f1f49ceb2d50148d3
MD5 d06c7761548f361cc383a74da01396e5
BLAKE2b-256 8fd2a259e3a86b8558147ab5f08ad027298f701f5fcf55b87daf0b20f3244a26

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