Difference between revisions of "My Factorio Info"
Line 1: | Line 1: | ||
== Factorio Headless Setup == | == Factorio Headless Setup == | ||
'''These steps were done with Ubuntu 22.04.3 LTS''' | |||
Resources: | Resources: | ||
Line 5: | Line 7: | ||
* Stable [https://factorio.com/get-download/stable/headless/linux64 Factorio headless] server | * Stable [https://factorio.com/get-download/stable/headless/linux64 Factorio headless] server | ||
Check that your version of glibc is >= 2.18 | Check that your version of glibc is >= 2.18 using <code>ldd --version</code> | ||
<pre> | <pre>$ ldd --version | ||
ldd (Ubuntu GLIBC 2. | ldd (Ubuntu GLIBC 2.35-0ubuntu3.7) 2.35 | ||
Copyright (C) | Copyright (C) 2022 Free Software Foundation, Inc. | ||
This is free software; see the source for copying conditions. There is NO | This is free software; see the source for copying conditions. There is NO | ||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
Line 16: | Line 18: | ||
Output of ldd command confirms glibc version >2.18. | Output of ldd command confirms glibc version >2.18. | ||
Switch to <code>$ cd /opt</code> directory and download latest Factorio stable headless version (1.1. | Switch to <code>$ cd /opt</code> directory and download latest Factorio stable headless version (1.1.107 as of this writing) | ||
<pre>$ sudo wget https://factorio.com/get-download/stable/headless/linux64 | <pre>$ sudo wget https://factorio.com/get-download/stable/headless/linux64 | ||
-- | [sudo] password for anon: | ||
Resolving factorio.com (factorio.com)... 2606:4700:20::681a:f58, 2606:4700:20::ac43:47c5 | Sorry, try again. | ||
Connecting to factorio.com (factorio.com)|2606:4700:20::681a: | [sudo] password for anon: | ||
--2024-05-04 16:59:05-- https://factorio.com/get-download/stable/headless/linux64 | |||
Resolving factorio.com (factorio.com)... 2606:4700:20::ac43:47c5, 2606:4700:20::681a:f58, 2606:4700:20::681a:e58, ... | |||
Connecting to factorio.com (factorio.com)|2606:4700:20::ac43:47c5|:443... failed: No route to host. | |||
Connecting to factorio.com (factorio.com)|2606:4700:20::681a:f58|:443... failed: No route to host. | |||
Connecting to factorio.com (factorio.com)|2606:4700:20::681a:e58|:443... failed: No route to host. | |||
Connecting to factorio.com (factorio.com)|104.26.15.88|:443... connected. | |||
HTTP request sent, awaiting response... 302 Found | HTTP request sent, awaiting response... 302 Found | ||
Location: https://dl.factorio.com/releases/factorio_headless_x64_1.1. | Location: https://dl.factorio.com/releases/1.1.107_01hv6kd1ctem7tvfd5tbq1vtw8/factorio_headless_x64_1.1.107.tar.xz?secure=_GqQEFiF6ELNO_2x-zqWdg,1714845555 [following] | ||
-- | --2024-05-04 16:59:15-- https://dl.factorio.com/releases/1.1.107_01hv6kd1ctem7tvfd5tbq1vtw8/factorio_headless_x64_1.1.107.tar.xz?secure=_GqQEFiF6ELNO_2x-zqWdg,1714845555 | ||
Resolving dl.factorio.com (dl.factorio.com)... 2a02:6ea0: | Resolving dl.factorio.com (dl.factorio.com)... 2a02:6ea0:f900::3, 109.61.86.69 | ||
Connecting to dl.factorio.com (dl.factorio.com)|2a02:6ea0: | Connecting to dl.factorio.com (dl.factorio.com)|2a02:6ea0:f900::3|:443... failed: No route to host. | ||
Connecting to dl.factorio.com (dl.factorio.com)|109.61.86.69|:443... connected. | |||
HTTP request sent, awaiting response... 200 OK | HTTP request sent, awaiting response... 200 OK | ||
Length: | Length: 57164752 (55M) [application/octet-stream] | ||
Saving to: ‘linux64’ | Saving to: ‘linux64’ | ||
linux64 | linux64 100%[=================================================>] 54.52M 51.3MB/s in 1.1s | ||
2024-05-04 16:59:19 (51.3 MB/s) - ‘linux64’ saved [57164752/57164752]</pre> | |||
Rename file to match version (1.1.87 in this example) | Rename file to match version (1.1.87 in this example) | ||
<pre>$ sudo mv linux64 factorio_headless_x64_1.1. | <pre>$ sudo mv linux64 factorio_headless_x64_1.1.107.tar.xz</pre> | ||
Extract archived and zipped file | Extract archived and zipped file | ||
<pre>$ sudo tar -xJf factorio_headless_x64_1.1. | <pre>$ sudo tar -xJf factorio_headless_x64_1.1.107.tar.xz | ||
$ ls -l | $ ls -l | ||
total | total 55832 | ||
drwxr-xr-x | drwxr-xr-x 4 root root 4096 May 4 17:07 factorio | ||
-rw-r--r-- 1 root | -rw-r--r-- 1 root root 57164752 Apr 11 13:40 factorio_headless_x64_1.1.107.tar.xz</pre> | ||
Remove file (save space, you can always download the file again, if needed) | Remove file (save space, you can always download the file again, if needed) | ||
<pre>robot01@apu01:/opt$ sudo rm factorio_headless_x64_1.1. | <pre>robot01@apu01:/opt$ sudo rm factorio_headless_x64_1.1.107.tar.xz</pre> | ||
Add a new user to run factorio and assign ownership of <code>/opt/factorio</code> directory to same user | Add a new user to run factorio and assign ownership of <code>/opt/factorio</code> directory to same user | ||
Line 53: | Line 62: | ||
Verify permissions show factorio for both user and group | Verify permissions show factorio for both user and group with <code>ls -ld /opt/factorio</code> | ||
<pre>$ ls - | <pre>$ ls -ld /opt/factorio/ | ||
drwxr-xr-x 4 factorio factorio 4096 May 4 17:07 /opt/factorio/</pre> | |||
Line 67: | Line 77: | ||
Start server and look for something like "File /savename does not exist." | Start server and look for something like "File /savename does not exist." | ||
<pre>$ /opt/factorio/bin/x64/factorio --start-server savename | <pre>$ /opt/factorio/bin/x64/factorio --start-server savename | ||
0.000 | 0.000 2024-05-04 17:53:44; Factorio 1.1.107 (build 62234, linux64, headless) | ||
0. | 0.020 Operating system: Linux (Ubuntu 22.04) | ||
0. | 0.020 Program arguments: "/opt/factorio/bin/x64/factorio" "--start-server" "savename" | ||
0. | 0.020 Config path: /opt/factorio/config/config.ini | ||
0. | 0.020 Read data path: /opt/factorio/data | ||
0. | 0.020 Write data path: /opt/factorio [1763296/1874134MB] | ||
0. | 0.020 Binaries path: /opt/factorio/bin | ||
0. | 0.024 System info: [CPU: 13th Gen Intel(R) Core(TM) i9-13900K, 32 cores, RAM: 64055 MB] | ||
0. | 0.024 Environment: DISPLAY=<unset> WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=<unset> XDG_SESSION_DESKTOP=<unset> XDG_CURRENT_DESKTOP=<unset> __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset> | ||
0. | 0.024 Running in headless mode | ||
0.046 Loading mod core 0.0.0 (data.lua) | |||
0. | 0.062 Loading mod base 1.1.107 (data.lua) | ||
0.152 Loading mod base 1.1.107 (data-updates.lua) | |||
0.182 Checksum for core: 607699937 | |||
0.182 Checksum of base: 1054619811 | |||
0.277 Prototype list checksum: 3034860339 | |||
0.299 Info PlayerData.cpp:78: Local player-data.json unavailable | |||
0.299 Info PlayerData.cpp:83: Cloud player-data.json unavailable | |||
0.301 Factorio initialised | |||
0.302 Info ServerSynchronizer.cpp:29: nextHeartbeatSequenceNumber(0) initialized Synchronizer nextTickClosureTick(0). | |||
0.302 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(Ready) to(PreparedToHostGame) | |||
0.302 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(PreparedToHostGame) to(CreatingGame) | |||
0.304 Loading map /opt/factorio/savename | |||
0.305 Error ServerMultiplayerManager.cpp:92: MultiplayerManager failed: "File /opt/factorio/savename does not exist." | |||
0.305 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(CreatingGame) to(InitializationFailed) | |||
0.305 Info CommandLineMultiplayer.cpp:219: Exit point. | |||
0.306 Info ServerMultiplayerManager.cpp:154: Quitting multiplayer connection. | |||
0.306 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(InitializationFailed) to(Closed) | |||
0.321 Info UDPSocket.cpp:233: Closing socket | |||
0.322 Goodbye</pre> | |||
At this point you can load up saved games or create some games. | At this point you can load up saved games or create some games. | ||
== Publish game on Factorio matching server == | |||
Copy /opt/factorio/data/server-settings.example.json to /opt/factorio/data/server-settings.json. | |||
<pre>$ sudo cp /opt/factorio/data/server-settings.example.json /opt/factorio/data/server-settings.json</pre> | |||
<pre>$ sudo | |||
Edit appropriate server-settings.json values. | |||
I used _comment_token versus password value. The appropriate value is located in %appdata%\Factorio\player-data.json under the key name "service-token". The service-token is populated after you've browsed the multiplayer servers via your Factorio game client. | |||
My player-data.json for user "anon" on Windows was located at C:\Users\anon\AppData\Roaming\Factorio. | |||
Make any changes to config ini | Make any changes to config ini | ||
Line 209: | Line 136: | ||
change permissions to your dedicated factorio user | change permissions to your dedicated factorio user | ||
<pre>sudo chown -R | <pre>sudo chown -R factorio:factorio factorio</pre> | ||
launch game | launch game | ||
[[Gaming]] | [[Gaming]] |
Revision as of 11:30, 4 May 2024
Factorio Headless Setup
These steps were done with Ubuntu 22.04.3 LTS
Resources:
- Multiplayer Factorio wiki
- Stable Factorio headless server
Check that your version of glibc is >= 2.18 using ldd --version
$ ldd --version ldd (Ubuntu GLIBC 2.35-0ubuntu3.7) 2.35 Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
Output of ldd command confirms glibc version >2.18.
Switch to $ cd /opt
directory and download latest Factorio stable headless version (1.1.107 as of this writing)
$ sudo wget https://factorio.com/get-download/stable/headless/linux64 [sudo] password for anon: Sorry, try again. [sudo] password for anon: --2024-05-04 16:59:05-- https://factorio.com/get-download/stable/headless/linux64 Resolving factorio.com (factorio.com)... 2606:4700:20::ac43:47c5, 2606:4700:20::681a:f58, 2606:4700:20::681a:e58, ... Connecting to factorio.com (factorio.com)|2606:4700:20::ac43:47c5|:443... failed: No route to host. Connecting to factorio.com (factorio.com)|2606:4700:20::681a:f58|:443... failed: No route to host. Connecting to factorio.com (factorio.com)|2606:4700:20::681a:e58|:443... failed: No route to host. Connecting to factorio.com (factorio.com)|104.26.15.88|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://dl.factorio.com/releases/1.1.107_01hv6kd1ctem7tvfd5tbq1vtw8/factorio_headless_x64_1.1.107.tar.xz?secure=_GqQEFiF6ELNO_2x-zqWdg,1714845555 [following] --2024-05-04 16:59:15-- https://dl.factorio.com/releases/1.1.107_01hv6kd1ctem7tvfd5tbq1vtw8/factorio_headless_x64_1.1.107.tar.xz?secure=_GqQEFiF6ELNO_2x-zqWdg,1714845555 Resolving dl.factorio.com (dl.factorio.com)... 2a02:6ea0:f900::3, 109.61.86.69 Connecting to dl.factorio.com (dl.factorio.com)|2a02:6ea0:f900::3|:443... failed: No route to host. Connecting to dl.factorio.com (dl.factorio.com)|109.61.86.69|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 57164752 (55M) [application/octet-stream] Saving to: ‘linux64’ linux64 100%[=================================================>] 54.52M 51.3MB/s in 1.1s 2024-05-04 16:59:19 (51.3 MB/s) - ‘linux64’ saved [57164752/57164752]
Rename file to match version (1.1.87 in this example)
$ sudo mv linux64 factorio_headless_x64_1.1.107.tar.xz
Extract archived and zipped file
$ sudo tar -xJf factorio_headless_x64_1.1.107.tar.xz $ ls -l total 55832 drwxr-xr-x 4 root root 4096 May 4 17:07 factorio -rw-r--r-- 1 root root 57164752 Apr 11 13:40 factorio_headless_x64_1.1.107.tar.xz
Remove file (save space, you can always download the file again, if needed)
robot01@apu01:/opt$ sudo rm factorio_headless_x64_1.1.107.tar.xz
Add a new user to run factorio and assign ownership of /opt/factorio
directory to same user
$ sudo useradd factorio $ sudo chown -R factorio:factorio /opt/factorio/
Verify permissions show factorio for both user and group with ls -ld /opt/factorio
$ ls -ld /opt/factorio/ drwxr-xr-x 4 factorio factorio 4096 May 4 17:07 /opt/factorio/
Test Factorio binary by switching to factorio user then start server
robot01@apu01:/opt$ sudo su - factorio No directory, logging in with HOME=/ $
As factorio user create /opt/factorio/
saves directory. I used saves directory.
$ mkdir /opt/factorio/saves
Start server and look for something like "File /savename does not exist."
$ /opt/factorio/bin/x64/factorio --start-server savename 0.000 2024-05-04 17:53:44; Factorio 1.1.107 (build 62234, linux64, headless) 0.020 Operating system: Linux (Ubuntu 22.04) 0.020 Program arguments: "/opt/factorio/bin/x64/factorio" "--start-server" "savename" 0.020 Config path: /opt/factorio/config/config.ini 0.020 Read data path: /opt/factorio/data 0.020 Write data path: /opt/factorio [1763296/1874134MB] 0.020 Binaries path: /opt/factorio/bin 0.024 System info: [CPU: 13th Gen Intel(R) Core(TM) i9-13900K, 32 cores, RAM: 64055 MB] 0.024 Environment: DISPLAY=<unset> WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=<unset> XDG_SESSION_DESKTOP=<unset> XDG_CURRENT_DESKTOP=<unset> __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset> 0.024 Running in headless mode 0.046 Loading mod core 0.0.0 (data.lua) 0.062 Loading mod base 1.1.107 (data.lua) 0.152 Loading mod base 1.1.107 (data-updates.lua) 0.182 Checksum for core: 607699937 0.182 Checksum of base: 1054619811 0.277 Prototype list checksum: 3034860339 0.299 Info PlayerData.cpp:78: Local player-data.json unavailable 0.299 Info PlayerData.cpp:83: Cloud player-data.json unavailable 0.301 Factorio initialised 0.302 Info ServerSynchronizer.cpp:29: nextHeartbeatSequenceNumber(0) initialized Synchronizer nextTickClosureTick(0). 0.302 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(Ready) to(PreparedToHostGame) 0.302 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(PreparedToHostGame) to(CreatingGame) 0.304 Loading map /opt/factorio/savename 0.305 Error ServerMultiplayerManager.cpp:92: MultiplayerManager failed: "File /opt/factorio/savename does not exist." 0.305 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(CreatingGame) to(InitializationFailed) 0.305 Info CommandLineMultiplayer.cpp:219: Exit point. 0.306 Info ServerMultiplayerManager.cpp:154: Quitting multiplayer connection. 0.306 Info ServerMultiplayerManager.cpp:814: updateTick(4294967295) changing state from(InitializationFailed) to(Closed) 0.321 Info UDPSocket.cpp:233: Closing socket 0.322 Goodbye
At this point you can load up saved games or create some games.
Publish game on Factorio matching server
Copy /opt/factorio/data/server-settings.example.json to /opt/factorio/data/server-settings.json.
$ sudo cp /opt/factorio/data/server-settings.example.json /opt/factorio/data/server-settings.json
Edit appropriate server-settings.json values.
I used _comment_token versus password value. The appropriate value is located in %appdata%\Factorio\player-data.json under the key name "service-token". The service-token is populated after you've browsed the multiplayer servers via your Factorio game client.
My player-data.json for user "anon" on Windows was located at C:\Users\anon\AppData\Roaming\Factorio.
Make any changes to config ini
robot01@apu01:/opt/factorio$ sudo vi /opt/factorio/config/config.ini
Update headless server
download latest headless version
unzip and untar
sudo tar -xJf linux64
change permissions to your dedicated factorio user
sudo chown -R factorio:factorio factorio
launch game