Factorio

[更新: 2024年12月18日]

スタートアップスクリプト「Factorio Headless Server」は、 さくらのVPS で作成された仮想サーバー上にFactorioのマルチプレイサーバー(Headless Server)を構築できるスクリプトです。
Factorio は工場を建設・維持するゲームです。敵と戦いながら、資源採掘や研究、インフラ構築や生産自動化を行なっていくゲームです。
本スクリプトは、 さくらのVPS のスタートアップスクリプト機能の一部です。スタートアップスクリプト機能の利用条件やその他詳細については スタートアップスクリプト をご確認ください。

Factorio は Wube software の著作物です。 Copyright Wube software

仕様

提供プラン

全てのプラン

バージョン

全てのバージョン

OS

ubuntu 20.04 で利用可能

事前準備

  • 本スクリプトのご利用には、お申込み済みの さくらのVPS の仮想サーバが必要です。お申し込み方法については、 お申し込みのながれ をご確認ください。

  • 2週間のお試し期間もございますので、まだご利用でない方もお気軽にお試しください。

※ お試し期間中は 転送量制限 があるためマップのロードなどに時間がかかり、快適にプレイできない場合があります。

本スクリプトの構成

本スクリプトを実行すると、以下のファイルを生成します。

/var/spool/cron/crontabs
└─- ubuntu

/home/ubuntu/
|-- factorio
|-- factorio_cron.log
|-- factorio_headless_server_updater.sh
|-- first_map.log
|-- first_map.zip
|-- server-settings.json
└─- start_factorio_server.sh

/var/spool/cron/crontabs/ubuntu

サーバーOS起動時に、ゲームサーバーを自動で起動するためのCRON設定です。

factorio/

ゲームサーバーの実行ファイル群です。

factorio_cron.log

ゲームサーバーを自動起動した際のログです。

factorio_headless_server_updater.sh

ゲームサーバーを自動更新するスクリプトです。CRONにより、OS起動時に自動実行されます。

first_map.zip / first_map.log

初期マップのデータとその実行ログです。

server-settings.json

ゲームサーバー起動時に読み込むサーバー設定ファイルです。

start_factorio_server.sh

ゲームサーバーを起動するためのスクリプトです。CRONにより、OS起動時に自動実行されます。

Factorio headless server のインストール

[サーバー新規追加の場合]
「ubuntu」を選択し、「20.04 amd64」を選択します。
サーバー新規追加の画面
[OS再インストールの場合]
「標準OS」を選択し、「ubuntu」の「20.04 amd64」を選択します。
OS再インストールの画面

「スタートアップスクリプトを選ぶ」を選択します。

スタートアップスクリプトの選択場所

「Factorio headless server」を選択します。

Factorio headless serverを選択
[サーバー新規追加の場合]
「お支払い方法選択へ」をクリックし、支払い方法をご確認いただき、必要事項を選択または入力して「お支払いを確定する」をクリックします。

[OS再インストールの場合]
「内容確認」をクリックします。
表示された確認画面の内容に問題が無ければ、再度「OS再インストール」をクリックします。

サーバー新規追加の準備、またはOS再インストールが開始します。

[サーバー新規追加の場合]
コントロールパネルに新規追加したサーバーが表示されたら、「電源操作」から「起動」を選択してください。
サーバーの起動とともに Factorio headless server のインストールを開始します。
完了までしばらくお待ちください。

[OS再インストールの場合]
サーバーの状態が「インストール中」から「稼働中」になると、Factorio headless server のインストールを開始します。
完了までしばらくお待ちください。

Factorioのクライアント側で使用するため、「ネットワーク」から「ネットワーク情報-IPv4」のアドレスをお控えください。
IPv4アドレスの確認場所

Factorio にログインする

標準設定では、サーバーアドレスの直入力での接続になります。

「マルチプレイ」の「サーバーに接続」を選択します。
マルチプレイを選択 サーバーに接続を選択
さくらのVPS のサーバーに割り当てられたIPアドレスを入力して接続を押します。
ドメインを設定している場合は、ドメイン名の入力でも接続できます。
IPアドレスかドメイン名を入力

接続が行われるとゲームのプレイ画面が表示されます。

メンテナンス手順

Factorioサーバーのバージョンアップデート

サーバーOS起動時に「factorio_headless_server_updater.sh」を実行し、ゲームサーバーの自動更新を行なっています。
そのため、 さくらのVPS のコントロールパネルやSSH経由でサーバOSを再起動すると、自動でアップデートが行われます。

Note

2022年01月25日までにOSインストールを実施した環境におきまして、バージョンアップデートに失敗する事がございます。
バージョンアップデートが失敗する場合、 factorio_headless_server_updater.sh を次の内容で更新し、OSを再起動ください。
#!/bin/bash
# Factorio headless serverの実行ファイルをアップデートするスクリプトです
# This script was automatically generated by SAKURA VPS startup-script.
HEADLESS_STABLE_DL_URL=https://www.factorio.com/get-download/stable/headless/linux64
latest=`curl -IL $HEADLESS_STABLE_DL_URL | awk -F '[?/]' '/^location: /{print $(NF-1)}'`
current=`cat .factorio_current`

if [ $latest != "$current" ]; then
  cd /home/ubuntu/
  rm factorio_headless_*.tar*
  curl -L $HEADLESS_STABLE_DL_URL > $latest
  tar xf $latest
  echo $latest > .factorio_current
fi

セーブデータのアップロード

MacOSから

MacOSの場合、Factorioのセーブデータは下記ディレクトリに保存されています。
「~/Library/ApplicationSupport/factorio/saves/」

scpなどのコマンドで、VPSにデータをアップロードできます。
$ scp ~/Library/Application\ Support/factorio/saves/[マップ名].zip ubuntu@[VPSのIPアドレス]:~/

Windowsから

Windowsの場合、セーブデータは下記ディレクトリに保存されています。
「C:Users[ユーザー名]AppDataRoamingFactoriosaves」

WSL(Windows Subsystem for Linux)をセットアップした環境をお持ちであれば、scpで転送する事ができます。
$ scp /mnt/c/Users/[ユーザー名]/AppData/Roaming/saves/[マップ名].zip ubuntu@[VPSのIPアドレス]:~/

マップの読み込み設定

セーブデータをアップロードしたら、読み込むマップ名を修正する必要があります。
「/home/ubuntu/start_factorio_server.sh」というファイルで起動するマップ名を指定しています。(「.zip」はマップ名からは省略されるので注意してください)

このスクリプトをviなどのエディタで編集し、読み込むマップ名を変更してください。
※ 初期状態ではマップ名は first_map です。

設定変更後は、サーバーOSを再起動することで新しい設定でゲームサーバーが自動起動します。

その他設定変更

Factorioサーバーの管理者設定やログイン認証を設定するには、設定ファイルを書き換える必要があります。

ゲームサーバー起動時に読み込んでいる設定ファイルは「/home/ubuntu/server-settings.json」です。
この設定ファイルをviなどのエディタで書き換えてください。

設定変更後は、サーバーOSを再起動することで新しい設定でゲームサーバーが自動起動します。

セーブデータのダウンロード

デスクトップアプリケーションからサーバーに接続し、Escキーを押した時のゲームメニューから「セーブ」を選択すると、クライアント側にマップを保存できます。
以上でセーブデータのダウンロードが完了します。

本スクリプトの公開や本ページの画像利用にあたってはFactorio開発元のWube softwareの許諾を得ています。
Copyright (c) 2015 – 2018 Wube Software