2026.10.29広告・PRを含む記事です

【マイクラ】ミニゲームサーバーの作り方!生活サーバーと分けて5手順でつなぐ

筆者が運営するミニゲームサーバーのロビーで、噴水とゲームごとのブースをシェーダー付きで撮ったゲーム画面と、ミニゲームサーバーの作り方の記事見出し
  • ミニゲームを生活サーバーに入れたら、壊れたり重くなったりしそう
  • Velocityのようなプロキシが難しそうで、手が出ない
  • 統合版の友達も同じミニゲームで遊べるのか知りたい

マイクラのミニゲームは、生活サーバーに入れず、専用のサーバーに分けるのがおすすめです。生活側のプラグインとぶつからず、ミニゲームを入れ替えても生活サーバーを止めずに済むからです。

分けたあとはVelocityというプロキシで1つのアドレスにまとめれば、友達は同じアドレスのまま、生活とミニゲームを行き来できます。

僕も生活サーバーのえこらいふ!と、ミニゲームサーバーのゆけむりらんど!を、この形で運営しています。

プロキシは難しそうに見えますが、書き換えるのは設定ファイルの決まった数か所だけです。

この記事では、5つの手順でVelocityの下に2台のPaperを並べ、そのあとロビーに公開プラグインのミニゲームを1つ用意するところまで進めます。

読み終えるころには、友達がいつものアドレスで入り、生活の合間にTNTランへ移って遊べるサーバーになっています。統合版の友達を入れる方法や、生活側と設定をそろえる注意もまとめたので、目次から困っている箇所へ進んでください。

管理人spaのアイコン
この記事を書いた人spa

マイクラサーバーの構築と運用を繰り返して4年。今も経済サバイバル「spa77.works SMP」を運用中で、その経験をもとに記事100本以上を執筆。

ミニゲームは生活サーバーと分けるのがおすすめ

1台に同居させる場合と2台に分ける場合の比較図。プラグインが少なくたまに遊ぶなら同居、経済や土地保護があり生活側を止めたくないなら分ける

生活サーバーに同居させてよいのは、生活側のプラグインが少なく、友達数人でたまに遊ぶ場合です。経済や土地保護を入れているなら、分けたほうが後で困りません。

あなたの状況おすすめ
友達数人でたまに遊ぶ。生活側のプラグインが少ない同居でもよい
経済、土地保護、クエストなどのプラグインを入れている分ける
ミニゲームを頻繁に入れ替えたい分ける
生活サーバーを止めたくない分ける

同居の道を選ぶなら、1台のPaperにMultiverse-Coreでミニゲーム用のワールドを足す形になります。この記事は、分ける場合の作り方です。

spa

僕がゆけむりらんど!を分けたのは、プラグインを分けたかったからです。

分けた理由は、次の3つでした。

  • 生活サーバーのえこらいふ!を止めずに、ミニゲームだけを更新できる
  • 経済や保護のプラグインと、試合の動きがぶつからない
  • サーバーごとの起動と更新が軽くなる

Velocityで2台を1つのアドレスにまとめる仕組み

プレイヤーが公開ポート25565のVelocityに接続し、Velocityが25566の生活サーバーと25567のミニゲームサーバーへつなぐ構成図。子サーバーのポートは外に開けない

Velocityは、プレイヤーの接続を受けて、後ろのサーバーへ振り分けるプロキシです。駅の改札口のように、友達が入るアドレスはVelocityの1つだけになります。

改札の後ろにある生活サーバーとミニゲームサーバーは、子サーバーと呼びます。子サーバーにはPaperをそのまま使います。

初心者

プロキシって、設定が難しくないですか?

spa

書き換える場所は決まっているので、手順どおりに上から進めれば大丈夫ですよ。

プレイヤーはゲーム内で /server を打つと、いまいるサーバーを確認できます。/server minigame のように名前を付ければ、そのサーバーへ移動します。この /server は、既定で全員が使えます。

BungeeCordでも同じ構成は組めます。VelocityとBungeeCordの選び方や、子サーバーを別のPCに置く場合の設定はプロキシサーバーの立て方にまとめています。

ロビーは専用サーバーにするか、ミニゲームサーバーの中に置くか

ロビーは、台数が少ないうちはミニゲームサーバーの中に置きます。サーバーを3台目に増やさずに済み、メモリも足りるからです。

僕のゆけむりらんど!も、ロビーはミニゲームサーバーの中にあります。入口は生活サーバーで、ミニゲームへは /server で移ります。

ミニゲームの種類や人数が増えたら、ロビーだけの専用サーバーを足す選択肢が出てきます。その場合は、手順2で lobby のような名前のサーバーを1台足し、入口にする行き先を try で切り替えます。

必要なメモリの目安

メモリの目安は、公式には載っていません。Velocityの公式の起動例は、1GBを確保する -Xms1G -Xmx1G です。

僕の運営では、次の値で動かしています。人数やプラグインで変わるので、あくまで一例です。

  • Velocity:256MB
  • 生活サーバー:3GB
  • ミニゲームサーバー:1.5GB

合わせて約4.8GBです。これはJavaに割り当てた量の合計で、OSが使う分は別に要ります。自宅のPCで、この3つを常に動かし続けるのは難しい人もいるはずです。

VPSなら、Velocityと2台のPaperを1台に置けます。XServer VPS for GameはVPSなので、合計にOSの分の余裕を足したメモリのプランを選べば、この記事の構成のまま動かせます。

Velocityと2台のPaperを1台にまとめて、友達が同じアドレスのまま生活とミニゲームを行き来できます

XServer VPS for Gameのプランを見る

ミニゲームサーバーの作り方

ここからは、Velocityと2台のPaperを同じPCかVPSに置く前提で進めます。VelocityもPaperもJava 25以上が必要です。足りないときはJavaの入れ方で入れ替えてください。

ポートは、次のように割り当てます。

サーバーポート外へ開けるか
Velocity25565開ける
生活サーバー25566開けない
ミニゲームサーバー25567開けない

生活サーバーをすでに25565で動かしているなら、手順3で25566へ変えます。ルーターのポート開放は、25565の行き先をVelocityのPCへ向け直す形です。ルーターの設定はポート開放のやり方を見てください。

Paperがまだないなら、先にPaperサーバーの立て方で2台分を用意します。ミニゲーム用の1台は、jarを置いたところで止め、まだ起動しないでください。最初の起動の前に、手順3でワールドを平らにする設定を入れます。

手順1:Velocityを入れて一度起動する

PaperMCのVelocityのダウンロードページを開き、青いボタンを押してjarを保存します。

PaperMCのVelocityのダウンロードページで、最新ビルドの青いダウンロードボタンを赤枠で囲んだ画面

保存したjarは、専用の新しいフォルダに置いてください。

そのフォルダでターミナル(Windowsはコマンドプロンプト)を開き、次のコマンドで起動します。[Velocityのjar名] は、保存したjarのファイル名に置き換えます。

java -Xms1G -Xmx1G -jar [Velocityのjar名]

メモリの1GBは公式の例の値です。僕のサーバーでは256MBで動かしていますが、迷ったら公式の値のままで構いません。

起動すると、フォルダに velocity.toml と forwarding.secret ができます。forwarding.secret は、Velocityと子サーバーの間の合言葉で、初回の起動時に自動で作られます。

ログに Listening on で始まる行が出ていれば、起動できています。設定を書き換える前に、Velocityの画面で次のコマンドを打って止めてください。

shutdown

手順2:velocity.tomlに2台を登録する

velocity.toml の [servers] に、子サーバーを 名前 = "アドレス:ポート" の形で書きます。最初から入っているサンプルの行は、次の内容に置き換えてください。

[servers]
smp = "127.0.0.1:25566"
minigame = "127.0.0.1:25567"
try = ["smp"]

smp と minigame は、ゲーム内の /server で使う名前です。try は、ログインしたときと、いるサーバーから追い出されたときに、試す順に並べたサーバーです。この例では、入ると生活サーバーに着きます。

すぐ下の [forced-hosts] にも、"lobby.example.com" = ["lobby"] のようなサンプルが3つ入っています。[servers] から消した名前を指しているので、[forced-hosts] の見出しだけ残して、この3つも消してください。残すと、Velocityが起動しません。

もう1か所、転送方式を modern にします。既定は NONE なので、書き換えが必要です。

player-info-forwarding-mode = "modern"

modern は、プレイヤーの情報を安全に子サーバーへ渡す方式です。使えるのはMinecraft 1.13以上です。

手順3:2台のPaperをVelocityの転送に合わせる

Paperで書き換える3つのファイルの図。server.propertiesのonline-mode・server-port・server-ip、spigot.ymlのbungeecord、paper-global.ymlのenabled・online-mode・secretで、secretにはforwarding.secretの中身を入れる

spigot.yml と config/paper-global.yml は、Paperを一度起動するとできるファイルです。ミニゲームサーバーを新しく立てるなら、一度起動して止めてから編集します。

ただし、ワールドを平らにする level-type だけは、最初の起動の前に決める設定です。最初の起動の前に、Paperのjarと同じフォルダへ、次の1行だけを書いた server.properties を置いてください。

level-type=minecraft:flat

level-type=minecraft:flat は、ワールドを平らなスーパーフラットにする設定で、ワールドを最初に作るときだけ反映されます。すでに一度起動したサーバーでは変わりません。その場合は、Multiverse-Coreを入れて、/mv create [ワールド名] normal --world-type flat で平らなワールドを作ってください。

ファイルがそろったら、編集の前に、2台それぞれの server.properties、spigot.yml、config/paper-global.yml をコピーして残してください。うまくいかないとき、元の値へ戻せます。

生活サーバーの server.properties は、次の3行をこの値にします。

online-mode=false
server-port=25566
server-ip=127.0.0.1

ミニゲームサーバーは、server-port だけ変えて次のとおりです。

online-mode=false
server-port=25567
server-ip=127.0.0.1

online-mode=false は、ログインの認証をVelocityに任せる設定です。server-ip=127.0.0.1 は、同じPCの中からの接続だけを受ける設定で、手順4で使います。

次に、2台とも spigot.yml の settings にある bungeecord が false であることを確かめます。

settings:
bungeecord: false

最後に、2台の config/paper-global.yml を開き、proxies.velocity を次のとおりにします。secret には、手順1でできた forwarding.secret の中身を貼ってください。online-mode は、velocity.toml と同じ値にします。例では true です。

proxies:
velocity:
enabled: true
online-mode: true
secret: '[forwarding.secretの中身]'

2台とも保存したら、Paperを再起動します。

手順4:子サーバーへ直接入れないようにする

Java版で外へ開けるポートは、Velocityの25565だけにします。生活サーバーの25566とミニゲームサーバーの25567は、ルーターでポート開放をしません。

Velocityと同じPCに子サーバーを置くこの記事の構成では、手順3の server-ip=127.0.0.1 が直接の接続を防ぎます。子サーバーは同じPCの中からの接続しか受けないので、外から25566や25567へつないでも届きません。VPSのようにルーターがない環境でも、同じ設定で防げます。

子サーバーを別のPCに置くなら、server-ip=127.0.0.1 ではVelocityからも届かなくなります。その場合は、ファイアウォールで子サーバーのポートをVelocityのPCからだけ許可します。設定例はプロキシの記事の直結を防ぐ節にあります。

modern転送はファイアウォールの代わりにならない

子サーバーは認証を切っているので、直接つながれると、誰でも好きな名前で入れてしまいます。

modern 転送と forwarding.secret があっても、ファイアウォールの代わりにはなりません。forwarding.secret は人に見せず、スクリーンショットにも写さないでください。

確かめるには、スマホのテザリングなど、ほかのネットワークから アドレス:25566 へつなぎます。つながらなければ成功です。つながってしまうなら、その子サーバーの server.properties に server-ip=127.0.0.1 が入っているか、保存後に再起動したかを見直してください。

統合版の友達も入れるなら、25565のほかにGeyserのポートも開けます。開け方はGeyserMCの手順にあります。

手順5:/serverで行き来できるか確かめる

Paper2台を起動し、最後にVelocityを起動します。Minecraftのサーバー一覧には、Velocityのアドレスだけを入れてください。

入れたら、次のコマンドで、いまいるサーバーを確認します。

/server

生活サーバーにいると表示されれば、try のとおりに入れています。続けて、ミニゲームサーバーへ移ります。

/server minigame

ミニゲームサーバーのスポーン地点に着き、/server smp で生活サーバーへ戻れたら成功です。

Velocityが起動しないときは、ログに Server '…' for forced host '…' does not exist が出ていないかを見ます。出ていれば、手順2の [forced-hosts] のサンプルが残っています。

移れないときは、次の3つを見ます。

  • config/paper-global.yml の secret が、forwarding.secret の中身と1文字も違わないか
  • 子サーバーの server.properties の online-mode が false で、paper-global.yml の online-mode が velocity.toml と同じ値か
  • velocity.toml に書いた名前が /server で打った名前と同じで、ポートが各サーバーの server-port と同じか

どれも直らず元に戻したいときは、手順3でコピーした3つのファイルを戻し、再起動してください。ポート開放も、生活サーバーのポートへ戻します。

ミニゲームのロビーと最初のゲームを用意する

ミニゲームは、プラグインを入れてアリーナを作ると遊べます。ここでは、TNTランを遊べる TNTRun_reloaded を例にします。前提のプラグインは要りません。

プラグインを入れてアリーナを建てる

TNTRun_reloadedの配布ページを開き、「Download Now」を押してjarを保存します。

SpigotMCのTNTRun_reloadedの配布ページで、Download Nowのボタンを赤枠で囲んだ画面

保存したjarを、ミニゲームサーバーの plugins フォルダに入れて再起動します。ミニゲームサーバーのコンソールで plugins と打ち、一覧に TNTRun_reloaded が出れば読み込めています。

ここから先の操作は、ゲーム内で /server minigame を打ち、ミニゲームサーバーへ移ってから行います。設定のコマンドは tntrun.setup の権限が要るので、自分にOP権限を付けておいてください。

そのあと、ミニゲームサーバーのワールドに、プレイヤーが乗る足場を何段か建てます。段と段の間は、ジャンプしても上の段に頭がぶつからないくらい空けます。

アリーナの範囲を決める

TNTランのアリーナに登録する場所の図。3段の足場をP1とP2の範囲で囲み、最上段に出現地点、最下段の下に負けの高さ、離れた場所に観戦地点とロビーを置き、最後にfinishで完成させる

アリーナ名は自由に決められます。ここでは arena1 にします。

/trsetup create arena1

範囲の指定は、WorldEditで2点を選ぶか、次の2つのコマンドで行います。コマンドは、見ているブロックを角として登録します。

/trsetup setP1
/trsetup setP2

範囲を決めたら、アリーナに反映します。

/trsetup setarena arena1

落ちる高さと出現地点を登録する

最下段の足場より下に立ち、負けになる高さを登録します。

/trsetup setloselevel arena1

次に、最上段の足場に立って、出現地点を登録します。

/trsetup setspawn arena1

観戦する人が着く場所に立って、観戦地点も登録します。

/trsetup setspectate arena1

最後に、設定を仕上げます。仕上げたアリーナは、自動で有効になります。

/trsetup finish arena1

ロビーを決めて遊ぶ

ロビーは、全アリーナで共通の1か所です。待機場所に立ち、1回だけ登録してください。

/trsetup setlobby

参加するときは、次のコマンドです。

/tr join arena1

アリーナに入れれば成功です。ロビーへ戻るときは /tr lobby を使います。日本語の翻訳も同梱されていて、/trsetup setlanguage で切り替えられます。

設定の途中でつまずいたら、アリーナ名を変えて /trsetup create からやり直してください。

ゆけむりらんど!では、ロビーは奈落だけの空のワールドの上に、プラグインが自動で組み立てます。試合のワールドは、試合のたびに作って消します。

ただし、僕のミニゲームは公開していない自作プラグインです。この記事で紹介しているのは、誰でも入れられる公開プラグインだけです。

僕の場合は試合のワールドを作って消すので、ミニゲームサーバーはバックアップに含めていません。

TNTRun_reloadedのように、建てた足場とアリーナの設定がサーバーに残るプラグインでは事情が違います。ミニゲームサーバーのワールドと plugins/TNTRun_reloaded のフォルダも、生活サーバーと同じく自動バックアップの対象に入れてください。

入れるミニゲームプラグインの選び方

選ぶ基準は、次の3つです。

  • 更新日と、対応する版の表記
  • 前提になるプラグイン
  • 統合版の友達が操作できるか

候補は、次のとおりです。

横にスクロールできます →

プラグインゲーム特徴表記の上限
TNTRun_reloadedTNTラン前提なし。複数アリーナとロビーがある。2026年6月更新26.2
ScreamingBedWarsベッドウォーズPaper対応。複数アリーナと観戦がある。LGPL-3.0。2026年6月更新26.3
Spleef_reloadedスプリーフTNTRun_reloadedと同じ作者。ロビーがある1.21.11
BlockPartyBlockParty複数アリーナと待機ロビーがある。2026年6月更新1.21系
BlockHunt minigamesBlockHuntProtocolLibとLibsDisguisesが必須。Geyser経由の統合版は、ブロックの見た目が正しく出ない26.1.x

5つとも無料で使えます。統合版で操作できるかは、BlockHunt minigames以外は配布ページに書かれていません。統合版の友達がいるなら、入れたあと統合版でも1試合遊んで確かめてください。

ベッドウォーズでよく名前が挙がるBedWars1058は、更新が止まっていて表記も1.21.4までなので、表には入れていません。

表記の上限を超える版でも、動くことは珍しくありません。ただ、動くと決めつけず、入れたらアリーナを作って、参加から終了まで1試合は試してください。

プラグインをほかにも探すなら、プラグインまとめから用途別に選べます。

統合版の友達もミニゲームに入れるようにする

統合版はVelocityで受ける構成図。Java版と統合版のプレイヤーがVelocityに入り、GeyserとFloodgateはVelocityにだけ入れて、生活サーバーとミニゲームサーバーへつなぐ

統合版の友達を入れるには、GeyserMCのGeyserとFloodgateを使います。Velocity構成では、Geyser-VelocityをVelocityにだけ入れます。子サーバーには入れません。

FloodgateもVelocityに入れれば足りる場合が多く、子サーバーに入れるのは、FloodgateのAPIを使うときだけです。そのときは、Velocity側のFloodgateの設定で send-floodgate-data を true にし、Velocity側の key.pem を各子サーバーのFloodgateのフォルダへコピーします。

手順は、GeyserのセットアップとFloodgateのセットアップにあります。統合版の友達が同じアドレスで入り、/server minigame で移れたら成功です。

統合版の参加の全体像は、GeyserMCで統合版を入れる手順にまとめています。

プラグインによっては、統合版で見た目が崩れます。BlockHunt minigamesは、上の表のとおりです。

spa

僕の自作ミニゲームは、メニューをチェスト型だけにして、名札を見えないアーマースタンドで出しています。

統合版でも名札が見えるように、TextDisplayではなくアーマースタンドの名前を使う作りにしました。ミニゲームを入れるときは、統合版の友達に1度、メニューと名札が見えるかを試してもらってください。

生活サーバーだけにある仕組みをミニゲーム側にもそろえる

生活サーバーに入れた仕組みは、ミニゲームサーバーには入っていません。子サーバーごとの仕組みは、移った先のサーバーには適用されないためです。

ViaVersionを入れる

ViaVersionは、サーバーより新しい版のJava版クライアントでも入れるようにするプラグインです。子サーバーに入れるプラグインなので、生活サーバーに入れていても、ミニゲームサーバーでは動きません。

生活サーバーに入れているなら、ミニゲームサーバーにも入れてください。僕はミニゲーム側に入れ忘れていて、あとから足しました。

認証と許可リストを移動先でも通す

生活サーバーに認証や許可リストがあっても、ミニゲームサーバーでは動きません。許可リストの使い方は、ホワイトリストの使い方にあります。

spa

えこらいふ!にはDiscord認証がありますが、ゆけむりらんど!には入れず、Velocityで移動の前に認証を確かめる仕組みを作りました。

移動前に確かめる仕組みは僕の自作なので、すぐに使えるのは、ミニゲームサーバーにも生活サーバーと同じ認証や許可リストを入れる方法です。許可リストなら、ミニゲームサーバーでも同じ人を登録します。移った先で認証が抜ける穴を作らないことが大切です。

よくある質問

Qレンタルサーバーでもできますか?
A

VPSなら、Velocityと2台のPaperを置けるのでできます。ゲーム専用の管理画面だけで使うプランは、自由にjarを置いて複数のサーバーを起動できるかを、申し込む前に確かめてください。

まとめ:生活サーバーと分ければ、ミニゲームを気軽に増やせる

Velocityの下に生活サーバーとミニゲームサーバーを並べ、/server minigame で行き来でき、ロビーから公開プラグインのミニゲームを1つ遊べれば完成です。子サーバーのポートが外から届かないことも、あわせて確かめてください。

統合版の友達がいるなら、GeyserMCの手順で同じアドレスから入れるようにするのが、次の一歩です。統合版の友達がいなければ、生活サーバーのワールドを守る自動バックアップへ進んでください。

Velocityと2台のPaperを自宅のPCで回しきれないときは、VPSに3つをまとめる手があります。

3つのサーバーを1台にまとめて、友達とミニゲームの夜をいつでも始められます

XServer VPS for Gameのプランを見る