Rustサーバーにカスタムマップを導入する方法
結論: .mapファイルを、直接httpsでダウンロードできるリンクが得られる場所にアップロードし、サーバーの起動行かserver.cfgにserver.levelurl "<そのリンク>"を入れ、server.seedとserver.worldsizeを削除して、サーバーを再起動します。サーバーも参加するプレイヤーも、そのリンクからマップをダウンロードします。
.mapファイルのカスタムマップ。Crucible Heightmap、Creator、RustEditのどれで作ったものでも構いません。- ファイルを置く場所で、直接ダウンロードできるリンクが得られるもの。ブラウザでリンクを開くと、ページやボタンを挟まずにすぐダウンロードが始まります。
httpsのリンクである必要があります。 - 再起動できるRustサーバーと、編集できる状態の起動行か
server.cfg。
1. まず自分のPCでマップを試す
Section titled “1. まず自分のPCでマップを試す”ほかの人より先に、マップを歩いてみましょう。Crucible Local Serverなら、リンクなしで自分のPCで動かせます。.mapをウィンドウにドラッグし、割り当てを押して、サーバーを起動し、参加を押します。プレイヤーがスポーンするか、モニュメントが地面に乗っているか、道をふさぐものがないかを確かめてください。手順の全体はローカルのRustサーバーでマップをテストするにあります。
マップをアップロードしたら(手順2)、リンクも同じように試します。マップタブでホスト先のURLを選び、コンフィグタブの**レベルURL (.mapの直接ダウンロード)**にリンクを貼って、サーバーを起動します。読み込めれば、そのリンクは使えます。
2. マップを直接ダウンロードできるリンクに置く
Section titled “2. マップを直接ダウンロードできるリンクに置く”- ダウンロードがすぐ始まること。 ダウンロードボタンがあるファイル共有ページはだめです。サーバーがマップの代わりにそのページを受け取ってしまいます。
- Dropboxなら、 共有リンクは
dl=0で終わり、ページが開きます。dl=1に変えてください。 - リンクを生かしておく。 新しいプレイヤーは、初めて参加するときにそのリンクからマップをダウンロードします。リンクが切れると、サーバーがそのマップを動かしている間、新しいプレイヤーは入れません。
- 確認: リンクをブラウザに貼ってみます。
.mapで終わるファイルがダウンロードされ、サイズが自分のファイルと同じになるはずです。
3. サーバーにリンクを指定する
Section titled “3. サーバーにリンクを指定する”サーバーの起動行で:
RustDedicated.exe -batchmode +server.identity "my_server" +server.port 28015 +server.levelurl "https://example.com/maps/mymap.map" +server.maxplayers 100 +rcon.port 28016 +rcon.password "your-own-password" +rcon.web 1または、サーバーのcfgフォルダ(RustDedicated.exeの隣のserver/<identity>/cfg/)にあるserver.cfgの1行として:
server.levelurl "https://example.com/maps/mymap.map"server.seedとserver.worldsizeは削除します。 この2つはプロシージャルマップを作る設定です。レベルURLがあると、ワールドはマップファイルで決まります。- リンクは引用符で囲みます。
- 起動行と
server.cfgの両方で設定していると、起動行が優先されます。
両方の場所についてさらに詳しくは、Rustのserver.cfgの例と起動引数を見てください。
4. 再起動してコンソールを確認する
Section titled “4. 再起動してコンソールを確認する”Rustはサーバーの起動時に一度だけマップを読み込むので、再起動してください。コンソールに次が表示されます。
Loading custom map from https://example.com/maps/mymap.mapそしてサーバーブラウザにはマップがCustom Mapと表示されます。ダウンロードに失敗すると、コンソールにマップ名と理由を添えたCouldn't Download Level:が表示され、サーバーはシャットダウンします。それぞれが何を意味し、何を変えればいいかは、エラー索引のRustサーバーメッセージにあります。
あとからマップを更新する
Section titled “あとからマップを更新する”サーバーとすべてのプレイヤーは、ダウンロードした各マップのコピーを、リンクごとに保存しています。変更したマップを同じリンクにアップロードしても、全員が古いほうを読み込み続けます。回避する方法は2つあります。
- 新しいファイル名にする。
mymap_v2.mapとしてアップロードし、server.levelurlを新しいリンクに向けます。全員が新しくダウンロードします。Rustはカスタムマップのワールドセーブをマップのファイル名で付けるので、新しいワールドも始まります。 - 同じファイル名で、リンクだけ変える。 小さな修正でワールドを残したいなら、ファイル名はそのままにして、リンクの末尾だけ変えます。たとえば
https://example.com/maps/mymap.map?v=2です。先に新しいリンクをブラウザで開いて、ホスト先がそのリンクでもマップを返すか確認してください。
リンクを変える前に、サーバーを停止してください。マップを読むのは起動時だけです。
本番のプレイヤー向けに公開する
Section titled “本番のプレイヤー向けに公開する”自分のPCなしで動き続けるサーバーにマップを載せたいなら、DrizzzaはPine Hostingと提携しています: pine.host/drizzza。
Pine HostingならRustサーバーが数分で立ち上がり、DDoS対策とuModプラグインのインストーラーが付きます。コードDRIZZZAで30%オフ。
このページの手順は、ホスティングのサーバーでも同じです。マップをアップロードし、ホスト側で起動行かserver.cfgを編集できる場所にserver.levelurlを設定して、再起動します。
RustEditやCreatorの追加要素があるマップ
Section titled “RustEditやCreatorの追加要素があるマップ”素のRustサーバーは、どんな.mapでも地形、レイヤー、プレハブを動かします。エディターによっては、ファイルに保存した追加要素を動かすのにサーバー側の追加機能が必要です。RustEditのパズルとスポナーには、CarbonまたはOxideのサーバーでRustEdit拡張機能が必要で、Creatorの配線、ボリューム、ルートプロファイルにはCreatorのサーバー拡張機能が必要です。カスタムデータマップとRustEditと、素のサーバーが読むものを見てください。
