Proximity/positional audio in Factorio!
Installation instructions are on the "Proximity Voice Chat" Factorio mod page
-
Download Mumble voice chat software
-
Install mumble plugin (see below for more info)
-
Install Factorio mod "Proximity Voice Chat" (see below for more info)
-
Enable Positional Audio (PA) in Mumble (see below)
-
Done!
PA will enable when you are in the same game server.
-
Download the latest
factorio.mumble_plugin
from the releases page. -
Install the plugin in Mumble
-
Enable positional audio
-
Change positional audio settings to personal preference (1 metre = 1 tile in-game). Hover over each setting to see what they do. My recommendation is the following settings:
-
Done! To check it works, launch Factorio, load a game with the Factorio mod, and check the Mumble chat. It should display "Factorio linked"
Install the Proximity voice chat mod in-game.
All files are in ./mumble
The main plugin is in plugin.c
. For development guide, see plugin docs. This plugin reads player position information from the file on disk (via the Factorio mod) and attaches to the Mumble Positional Audio API.
To check that the data is sent to Mumble correctly, you can use the positional audio viewer (requires Mumble v1.5 - plugin may be broken on 1.5, see comment)
The GitHub actions build the plugin for Windows and Linux. The plugin is output as a file factorio.mumble_plugin
in the bundle
artifact (deleted after 1 day).
Install GCC and make
sudo apt install gcc
sudo apt install make
Run build commands
cmake -S ./mumble/ -B ./build/ && make -C ./build
Install Visual Studio Build Tools with "Desktop development in C++"
Run commands (PowerShell). This will make a local Windows-only plugin (in build/factorio.mumble_plugin
). You must manually install it into mumble by unloading any previous plugin, and installing this.
cmake -S .\mumble\ -B .\build\ -DCMAKE_C_COMPILER=cl; cmake --build .\build\ --config Release; bash package_windows.sh
All files are in ./factorio
.
The mod itself is very simple, and consists of a single control script in control.lua
. This script dumps relevant information to a text file every few frames.
Mod information is held in info.json
.
Example file output:
XYZ, Player, sUrface, Server
x: 5.65625
y: -2.8359375
z: 0
p: 1
u: 1
s: alifeee
The log file is put in %application directory%
/script-output/mumble_positional-audio_information.txt
.
On Windows, that's
%APPDATA%/Factorio/script-output/mumble_positional-audio_information.txt