Factorio¶
[更新: 2024年3月6日]
スタートアップスクリプト「Factorio Headless Server」は、 さくらのVPS で作成された仮想サーバー上にFactorioのマルチプレイサーバー(Headless Server)を構築できるスクリプトです。
Factorio は工場を建設・維持するゲームです。敵と戦いながら、資源採掘や研究、インフラ構築や生産自動化を行なっていくゲームです。
本スクリプトは、 さくらのVPS のスタートアップスクリプト機能の一部です。スタートアップスクリプト機能の利用条件やその他詳細については スタートアップスクリプト をご確認ください。
Factorio は Wube software の著作物です。 Copyright Wube software
事前準備¶
本スクリプトのご利用には、お申込み済みの さくらの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」を選択します。
「スタートアップスクリプトを選ぶ」を選択します。
「Factorio headless server」を選択します。
[サーバー新規追加の場合]
「お支払い方法選択へ」をクリックし、支払い方法をご確認いただき、必要事項を選択または入力して「お支払いを確定する」をクリックします。
[OS再インストールの場合]
「内容確認」をクリックします。
表示された確認画面の内容に問題が無ければ、再度「OS再インストール」をクリックします。
サーバー新規追加の準備、またはOS再インストールが開始します。
[サーバー新規追加の場合]
コントロールパネルに新規追加したサーバーが表示されたら、「電源操作」から「起動」を選択してください。
サーバーの起動とともに Factorio headless server のインストールを開始します。
完了までしばらくお待ちください。
[OS再インストールの場合]
サーバーの状態が「インストール中」から「稼働中」になると、Factorio headless server のインストールを開始します。
完了までしばらくお待ちください。
Factorioのクライアント側で使用するため、「ネットワーク」から「ネットワーク情報-IPv4」のアドレスをお控えください。
Factorio にログインする¶
標準設定では、サーバーアドレスの直入力での接続になります。
「マルチプレイ」の「サーバーに接続」を選択します。
さくらのVPS のサーバーに割り当てられた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