🎮

GCPでFiveMサーバーを建てる

2024/10/01に公開

まえがき

ここ数ヶ月FiveM x QBなサーバーで遊んでいたのだが、最近はゲームするよりプヨグラミングしてるほうが楽しい気分なので、暇つぶしにサーバー建てたりスクリプトを書いたりしていて遊んでいる。
そのうち忘れそうなので一応メモしておく。Software Engineerでない人には難しい内容だと思うのでブラウザバックしたほうがいいです。

参考

GCP

身内で遊ぶ程度や開発環境ならEC2なりCompute EngineなりでSpot Instanceを借りると圧倒的に安上がりだと思う。
自分の場合はCompute Engine E2 2 vCPU, 4GB RAM, 20GB HDD, Ubuntu, Spot Instanceで数時間使って数十円程度。FiveMのServer Specificationは満たせていないが、この程度の用途であればこれくらいで十分。なんならRAMを2GBに減らしてもいいなとすら思っている。

ネットワーク設定

GCP側でFirewallが設定されているのでVPCネットワークからFirewallの設定を行う。
Fiveが30120 TCP/UDP
txAdminが40120 TCP/UDP

Database

Install

sudo apt-get install mariadb-server
sudo mysql_secure_installation

Add User

sudo mysql

後のstepでtxAdminでUserやPasswordの入力を求められる。この情報は平文でserver.cfgに記載されてしまうので注意。

create user 'your user name'@'localhost' identified by 'your password';
grant all privileges on *.* to 'your user name'@'localhost' identified by 'your password';
flush privileges;

Configuration

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address0.0.0.0 に変更

FiveM

ここからLATEST RECOMMENDEDのURLをコピーして、wgetでserver binariesをダウンロードする。
執筆時点ではbuild 7290がLatest Recommendedなので下記は7290のURLとなる。適宜書き換えてほしい。

mkdir -p ~/FiveM/server
wget -P ~/FiveM/server https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/7290-a654bcc2adfa27c4e020fc915a1a6343c3b4f921/fx.tar.xz
cd ~/FiveM/server && tar xf fx.tar.xz
rm fx.tar.xz

txAdmin

FiveMのserver binariesの用意ができたのでtxAdminを起動する。

bash ~/FiveM/server/run.sh
[    c-server-monitor]   _______  ______                           
[    c-server-monitor]  |  ___\ \/ / ___|  ___ _ ____   _____ _ __ 
[    c-server-monitor]  | |_   \  /\___ \ / _ \ '__\ \ / / _ \ '__|
[    c-server-monitor]  |  _|  /  \ ___) |  __/ |   \ V /  __/ |   
[    c-server-monitor]  |_|   /_/\_\____/ \___|_|    \_/ \___|_|   
[    c-server-monitor] -------------------------------- monitor ---
[    c-server-monitor] 
[    c-scripting-core] Creating script environments for monitor
[19:11:57][tx]    ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
[19:11:57][tx]    ┃                                    ┃
[19:11:57][tx]    ┃     All ready! Please access:[19:11:57][tx]http://your-public-ip:40120/[19:11:57][tx]http://<YOUR IP ADDRESS>:40120/[19:11:57][tx]    ┃                                    ┃
[19:11:57][tx]    ┃   Use the PIN below to register:[19:11:57][tx]1648[19:11:57][tx]    ┃                                    ┃
[19:11:57][tx]    ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
[19:11:57][tx] 
[19:11:57][tx] To be able to access txAdmin from the internet open port 40120
[19:11:57][tx] on your OS Firewall as well as in the hosting company.
[19:11:57][tx:FXRunner] Please open txAdmin on the browser to configure your server.

初回起動ではPINの入力を求められる。
http://<YOUR IP ADDRESS>:40120/ にアクセスしてPINを入力し、FiveMアカウントをリンクする。

FiveMアカウントとのリンクが出来たら、backup passwordを設定して、Master Accountを作成する。

txAdmin Recipe

Select Recipe

次に、txAdmin Recipeを使用してサーバーのスクリプトを一括導入する。
好みのRecipeがある場合はそのURL指定もできるが、初めてならとりあえずPopular Recipesでいくのがいいと思う。

FiveMならQBCore Framework、RedMならVORP Coreがスタンダード。今回はQBCoreを選択する。

taskを進めていき最後に Go to Receipe Deployer をクリックする。

Recipe Deployer

QBCoreのrecipeが表示されている。知識があれば余分なスクリプトを省いてもいいが、ないのであればとりあえずrecipeどおりにsetupするのがよい。

FiveM License Key

FiveM KeyaasterでServerのlicense keyをgenerateしてペースト。

Database options

Show/Hide Detabase optionsでDetabase optionsを表示。 MariaDBをセットアップした時に追加したUserやpasswordを入力。完了したらRun Receipeで実行。

Run Recipe

自動でQBCoreやVoIPのスクリプトがダウンロードされ、server.cfgに反映されていく。

Configure server.cfg

server.cfgを編集できる。サーバー名やサーバーアイコンなどを変更できる。
Save & Run Serverで設定を反映してサーバーが始動できる。あとはFiveM/RedMのクライアントでF8でconsoleを開いてconnect <IP>で接続できる。

Start Server

初回の設定が完了して以降はrun.shを叩けば勝手にサーバーが起動する。

bash ~/FiveM/server/run.sh

Linuxマシンの起動後に自動でサーバーを起動してほしい場合は適宜サービス化などしてください。

Discussion