Rust のサーバーを構築する
Published on 2023/06/03 , Last updated 2024/02/08Tags
概要
didstopia/rust-server を使用して Rust のサーバーを構築します。
前提条件
- Docker, Docker Compose が使用できる必要があります。
参考情報
サーバーの構築
Rust のサーバーを構築します。
-
サーバーに必要なフォルダを作成します。
フォルダ名 備考 data Rust データ用のフォルダ -
サーバーに必要な環境変数を記述したファイル「rust.env」を作成します。
RUST_SERVER_STARTUP_ARGUMENTS=-batchmode -load -logfile - +server.secure 1 +fps.limit 30 RUST_SERVER_IDENTITY=private_rust_server RUST_SERVER_SEED=2107922314 RUST_SERVER_WORLDSIZE=2500 RUST_SERVER_NAME=Private Rust Server RUST_SERVER_DESCRIPTION=Private Rust Server RUST_RCON_PASSWORD=mypw RUST_OXIDE_ENABLED=1 RUST_SERVER_MAXPLAYERS=5
環境変数の補足
環境変数 補足 RUST_SERVER_STARTUP_ARGUMENTS +fps.limit
でサーバー側の FPS を制限します。RUST_SERVER_SEED シード値を設定します。 RUST_SERVER_WORLDSIZE マップの広さを設定します。 RUST_RCON_PASSWORD パスワードはできるだけ複雑な値にします。 RUST_OXIDE_ENABLED MOD を使用するため 1
を設定します。RUST_SERVER_MAXPLAYERS サーバーに接続できるプレイヤーの人数の上限を設定します。 -
docker-compose.yaml
を作成します。version: '3.7' services: # https://hub.docker.com/r/didstopia/rust-server rust: image: didstopia/rust-server ports: # Rust クライアント接続ポート - 28015:28015 - 28015:28015/udp # Rcon クライアント接続ポート - 28016:28016 # Steam Networking - 28017:28017/udp # Web Console - 28018:8080 env_file: - /Users/st-little/Documents/rust/rust.env stdin_open: true tty: true volumes: - /Users/st-little/Documents/rust/data:/steamcmd/rust
サーバーの起動/停止
-
コンテナを起動します。
docker-compose up -d
-
コンテナを停止します。
docker-compose down
-
コンテナを削除します。
docker-compose rm
サーバへ接続
クライアントからサーバーに接続します。
-
Rust が起動したら
F1
キーを押します。 -
次のコマンドを入力してエンターキーを押します。
client.connect myserver:28015
サーバーの公開
Tunnel を構築して自宅サーバーを公開する方法 を参考にしてください。
次のように nginx を Rust に読み替えてください。
# server.toml
[server]
bind_addr = "0.0.0.0:2333"
[server.services.rust-tcp]
token = "token"
type = "tcp"
bind_addr = "0.0.0.0:28015"
[server.services.rust-udp]
token = "token"
type = "udp"
bind_addr = "0.0.0.0:28015"
[server.services.rust-rcon]
token = "token"
type = "tcp"
bind_addr = "0.0.0.0:28016"
[server.services.rust-steam]
token = "token"
type = "udp"
bind_addr = "0.0.0.0:28017"
# client.toml
[client]
remote_addr = "myserver:2333"
[client.services.rust-tcp]
token = "token"
type = "tcp"
local_addr = "rust:28015"
[client.services.rust-udp]
token = "token"
type = "udp"
local_addr = "rust:28015"
[client.services.rust-rcon]
token = "token"
type = "tcp"
local_addr = "rust:28016"
[client.services.rust-steam]
token = "token"
type = "udp"
local_addr = "rust:28017"
# docker-compose.yaml > services > tunnel
tunnel:
depends_on:
- rust
image: rapiz1/rathole
restart: unless-stopped
command: ["--client", "/app/client.toml"]
tty: true
volumes:
- /Users/st-little/Documents/rust/client.toml:/app/client.toml
MOD
uMod Plugins で Rust 用の Mod を探すことができます。
Whitelist
ホワイトリストに登録されたプレイヤーのうち、許可を得た人にサーバーへのアクセスを制限します。
-
「Download」ボタンを選択し
Whitelist.cs
をダウンロードします。 -
Whitelist.cs
を data/oxide/plugins にコピーします。 -
ブラウザで管理画面
myserver:28018/
を開きます。 -
Console を開いて一番下にある入力フィールドに次のコマンドを入力しエンターキーを押します。
myid
は SteamID64 です。oxide.grant user myid whitelist.allow
Backpacks
バックパックを持つことで、インベントリを増やすことができます。
-
「Download」ボタンを選択し
Backpacks.cs
をダウンロードします。 -
Backpacks.cs
を data/oxide/plugins にコピーします。 -
ブラウザで管理画面
myserver:28018/
を開きます。 -
Console を開いて一番下にある入力フィールドに次のコマンドを入力しエンターキーを押します。
すべてのプレイヤーがバックパックを使用できるようにします。
o.grant group default backpacks.use
すべてのプレイヤーがバックパック GUI ボタン を表示できるようにします。
o.grant group default backpacks.gui
バックアップ容量をデフォルトの
6
から24
に変更します。o.grant group default backpacks.size.24
Recycler Speed
リサイクラーのスピードを変更します。
-
「Download」ボタンを選択し
RecyclerSpeed.cs
をダウンロードします。 -
RecyclerSpeed.cs
を data/oxide/plugins にコピーします。 -
data/oxide/config/RecyclerSpeed.json の
Recyler Speed
でスピードを設定します。{ "Recyler Speed (Lower = Faster) (Seconds)": 1.0 }
-
ブラウザで管理画面
myserver:28018/
を開きます。 -
Console を開いて一番下にある入力フィールドに次のコマンドを入力しエンターキーを押します。
すべてのプレイヤーが Recycler Speed を使用できるようにします。
o.grant group default recyclerspeed.use
Discord Messages
メッセージを Discord に送信します。
-
「Download」ボタンを選択し
DiscordMessages.cs
をダウンロードします。 -
DiscordMessages.cs
を data/oxide/plugins にコピーします。
Inbound
パトロールヘリや補給物資の投下、貨物船などの入港を Discord でお知らせします。
前提条件
- Discord Messages のインストールが必要です。
- Discord の Webhook が必要です。
-
「Download」ボタンを選択し
Inbound.cs
をダウンロードします。 -
Inbound.cs
を data/oxide/plugins にコピーします。 -
data/oxide/config/Inbound.json を修正します。
Discord Messages の有効化、Webhook URL の設定を行います。
{ "Discord Messages": { "Enabled": true, "Webhook URL": "my Webhook url" } }
Ingame Clock GUI
ゲーム内の時刻を表示します。
-
「Download」ボタンを選択し
IngameClockGUI.cs
をダウンロードします。 -
IngameClockGUI.cs
を data/oxide/plugins にコピーします。 -
data/oxide/config/IngameClockGUI.json で設定を変更します。
時刻のフォントサイズ、表示位置を変更します。
{ "FontSize": 16, "Position": { "Bottom": 0.015, "Left": 0.3 } }
Wipe
ワイプの確認、変更ができます。詳細は Rust Wiki - Server Wipe Timer を参照してください。
PrintWipe
コマンドでワイプの確認ができます。
タイムゾーンの変更
デフォルトのタイムゾーンは wipetimer.wipetimezone: "Europe/London"
です。次のコマンドで日本に変更します。
wipeTimezone Japan
ワイプ日の指定
UNIX タイムスタンプを使用して、正確なワイプ日時を設定できます。2023/7/31 15:00:00 GMT+0
を指定する場合は次のコマンドを実行します。
wipeUnixTimestampOverride 1690815600
Misc
spawn f15e
コマンドで F-15E 戦闘機をスポーンすることができます。spawn bradleyapc
コマンドで Bradley APC をスポーンすることができます。