【Spigot】spigot.yml を丸ごと解説!設定項目の意味と調整のポイント

投稿日 最終更新 (約1ヶ月前)
サーバー運営
【Spigot】spigot.yml を丸ごと解説!設定項目の意味と調整のポイント
Spigot サーバーを立てると必ず生成される spigot.yml ですが、
項目が多くて「結局どこをいじればいいの?」と悩む方も多いはずです。
この記事では、実際に運用されている設定ファイルを例に、セクションごとに意味と注意点を解説します!

spigot.yml とは?

server.properties がバニラ由来の基本設定、bukkit.yml が Bukkit 層の設定であるのに対し、spigot.yml は Spigot 独自の最適化・ゲームプレイ調整 を担当するファイルです。パフォーマンスに直結する項目が多いので、意味を理解せずに変更するのは危険です。
なお今回の例では config-version: 12 となっており、これは Minecraft 1.19〜1.20 系の Spigot で使われるバージョンです。

settings:サーバー全体の基本設定

settings:
  debug: false
  bungeecord: true ⭐️プロキシサーバーを使う場合に設定
  restart-on-crash: true ⭐️サーバークラッシュ時に再起動を自動で行う
  restart-script: ./start.sh ⭐️サーバークラッシュ時の起動スクリプト
  netty-threads: 4
  timeout-time: 120


  • bungeecord: true
これは BungeeCord / Velocity などのプロキシ配下で動かす ための設定で、プレイヤーの IP や UUID をプロキシから正しく受け取れるようになります。
逆に、プロキシを使っていないのに true にすると、誰でも任意の UUID を名乗って接続できる 深刻なセキュリティホール になるため、単体サーバーでは必ず false にしましょう。

  • restart-on-crash: true ⭐️サーバークラッシュ時に再起動を自動で行う
  • restart-script: ./start.sh ⭐️サーバークラッシュ時の起動スクリプト
サーバーがクラッシュした際に自動で ./start.sh を実行して復旧させる設定です。無人運用には欠かせません。

  • netty-threads: 4
ネットワーク処理のスレッド数。CPU コア数が多く同時接続が多いサーバーでは増やす余地があります。
ですが、ネットワークの効率を高めてもTPSが改善するような効果的な対策にはなりません。デフォルトの 4 のままで良いでしょう。

  • attribute
attribute の各 max: 2048.0 は、プラグインで体力や攻撃力を上書きする際の上限値です。
RPG 系プラグインで「HP 10000」のようなボスを作りたい場合はここを引き上げます。

messages:システムメッセージの日本語化

messages:
  whitelist: あなたはこのサーバーのホワイトリストに登録されていません!
  unknown-command: 不明なコマンドです。"/help" を入力してヘルプを表示してください。
  server-full: サーバーが満員です!
  outdated-client: クライアントが古いです!{0} を使用してください
  outdated-server: サーバーが古いです!まだ {0} を使用しています
  restart: サーバー再起動
このファイルでは各種メッセージが日本語に翻訳されています。{0} はバージョン番号などが自動で差し込まれるプレースホルダーなので、翻訳時も消さないよう注意してください。カラーコード(&c など)も使えます。

commands:コマンド関連

commands:
  replace-commands:
  - setblock
  - summon
  - testforblock
  - tellraw
  tab-complete: 0
  send-namespaced: true
  spam-exclusions:
  - /skill
  silent-commandblock-console: false
  log: true
  • replace-commands:バニラのコマンドを Spigot の実装で置き換えるリスト。通常は触りません。
  • tab-complete:0 は 1 文字目からタブ補完が効く設定。-1 で補完を無効化できます。
  • spam-exclusions:スパム検知(Kicked for spamming)から除外するコマンドです。ここに /skill があることから、MythicMobs などスキル系プラグインで短時間に連打されるコマンドを許可していると推測できます。
  • log:コマンドをコンソールに記録するか。不正調査のために true 推奨です。

advancements / players / stats:保存の制御

advancements:
  disable-saving: false
  disabled:
  - minecraft:story/disabled
players:
  disable-saving: false
stats:
  disable-saving: false
  forced-stats: {}
  • advancements.disabled:進捗の ID を記入すると、その進捗を無効化できます。minecraft:story/disabled は存在しないダミー ID で、実質的に何も無効化していないデフォルト状態です。ミニゲームサーバーなどで進捗通知が邪魔な場合はここに追加しましょう。
  • players.disable-saving や stats.disable-saving を true にするとプレイヤーデータや統計を保存しなくなります。ロビーサーバー以外では基本 false のままにしてください。

world-settings:パフォーマンスの心臓部

ここが spigot.yml の本丸です。default に書いた内容が全ワールドに適用され、ワールド名のセクションを作れば個別に上書きできます。

作物の成長速度

    growth:
      cactus-modifier: 100
      wheat-modifier: 100
      ...
すべて 100(=バニラと同じ 100%)です。200 にすれば 2 倍速、50 で半減。農業サーバーで調整すると面白い項目です。

エンティティのアクティブ範囲と追跡範囲

    entity-activation-range:
      animals: 32
      monsters: 32
      raiders: 48
      misc: 16
      tick-inactive-villagers: true
      ignore-spectators: false
    entity-tracking-range:
      players: 128
      animals: 48
      monsters: 48
      misc: 32
      display: 128
      other: 64
  • activation-range:プレイヤーからこの距離(ブロック)より遠い Mob は AI 処理を停止します。TPS が落ちるサーバーではまず下げるべき項目です。TPS改善するために簡単な対策でありますが、プレイヤーはバニラと同じような体験ができなくなります。TTの設計がうまく動かなくなったりします。つまりこの設定項目は諸刃の剣です。
  • tracking-range:クライアントに Mob の情報を送信する距離。下げると通信量が減りますが、遠くの Mob が見えなくなります。
  • tick-inactive-villagers:非アクティブ範囲の村人も処理する設定です。取引所が多いサーバーでは村人が「止まっている」問題を防げますが、負荷は増えます。

ホッパー関連

    ticks-per:
      hopper-transfer: 8
      hopper-check: 3
    hopper-amount: 1
    hopper-can-load-chunks: false
  • hopper-transfer: 8 はデフォルト設定で、この数値を大きくすれば大量のホッパーによる負荷を軽減できます。ただしアイテム輸送が遅くなるので、自動化施設が多いサーバーでは調整の妥協点を探る必要があります。
  • hopper-can-load-chunks: false は、ホッパーが未ロードのチャンクを読み込むのを防ぐ重要な負荷対策です。

アイテム・投擲物の消滅時間

    item-despawn-rate: 6000
    arrow-despawn-rate: 1200
    trident-despawn-rate: 1200
  • 6000 tick = 5 分でドロップアイテムが消滅。地面に落ちたアイテムは負荷源なので、混雑するサーバーでは短縮を検討しましょう。

mob-spawn-range と max-tnt-per-tick

    mob-spawn-range: 6
    max-tnt-per-tick: 10
  • mob-spawn-range: 6(チャンク)は Mob がスポーンする範囲で、view-distance より大きくしても意味がありません。
  • max-tnt-per-tick: 10 は 1 tick あたりに処理する TNT の上限で、TNT キャノン荒らし対策になります。

merge-radius

    merge-radius:
      exp: 6.0
      item: 4.0
  • item: 4.0 は 4 ブロック以内のドロップアイテムをまとめる設定。大きくするとエンティティ数が減り軽くなりますが、アイテムがワープするように見えることがあります。

seed-* 項目

    seed-village: 10387312
    seed-desert: 14357617
    seed-igloo: 14357618
    seed-jungle: 14357619
    seed-swamp: 14357620
    seed-monument: 10387313
    seed-shipwreck: 165745295
    seed-ocean: 14357621
    seed-outpost: 165745296
    seed-endcity: 10387313
    seed-slime: 987234911
    seed-nether: 30084232
    seed-mansion: 10387319
    seed-fossil: 14357921
    seed-portal: 34222645
  • seed-village: 10387312 などは構造物生成用の内部シード値です。バニラと同じ値がデフォルトなので、通常は絶対に触らないでください。変えると既存ワールドの構造物位置がズレます。

まとめ:まず見直すべき項目

  1. bungeecord:プロキシ構成と一致しているか(最重要・セキュリティ)
  2. entity-activation-range:TPS が低ければ下げる
  3. hopper-*:自動化施設の多さとの兼ね合いで調整
  4. item-despawn-rate:ドロップアイテムによる負荷が気になれば短縮
  5. seed-*:触らない
spigot.yml は「速さ」と「バニラらしさ」のトレードオフを決めるファイルです。一度に大きく変えず、Timings や /tps で効果を確認しながら少しずつ調整していきましょう。