サーバーMOD > Spigot



Spigotについて

Spigotとは、SpigotAPIを実装したラッパータイプのサーバーModである。
現在最も使われるサーバーMod。

DMCA問題を回避するためにビルドをユーザーにさせており、ダウンロードで入手することは出来ない、またしてはならない。
(詳細: Bukkit - DMCA What's going on.)

SpigotとCraftBukkitの違い

順を追って説明する。
まず、BukkitというAPIを搭載しているのがCraftBukkitである。
このBukkitというAPIに改良や仕様変更を加えた物がSpigotというAPIである。
このSpigotというAPIを搭載したのがSpigotである。
このような経緯から、下記のようなことがある。
  • Spigotの仕様変更により、CraftBukkit用プラグインが動かない可能性がある。
  • 逆に、Spigotの仕様に従っているプラグインはCraftBukkitでは動かない可能性がある。

Spigotのビルド方法

準備するもの

Java 16
基本的にどのJREを使用しても問題ない。

BuildTools
最新の安定ビルド
ビルドの成果物の下にあるBuildTools.jarをダウンロードすること。

Git
Windows - BuildTools.jar実行時にGit Portableがダウンロードされるため不要。

CentOS - インストール後、Gitの改行コードを設定しないようにする。
yum install git
git config --global --unset core.autocrlf
Ubuntu - インストール後、Gitの改行コードを設定しないようにする。
sudo apt install git
git config --global --unset core.autocrlf
macOS - 下記コマンドを入力して「コマンドライン・デベロッパ・ツール」をインストールすると導入される。
git --version

2GB以上の空きストレージとインターネット環境

Spigotのビルド手順

新規フォルダやディレクトリを作成し、その中にダウンロードしてきたBuildTools.jarを入れる
特に日本語が混じっていても問題ないが、フォルダにスペースを入れるとエラーが出る恐れがある。
Linuxは下記コマンドを実行してディレクトリの作成・パーミッション投与・コピーを行う。
mkdir buildtools
chmod 777 buildtools
cd buildtools

PowerShellやターミナルを起動し、フォルダ内で下記のコマンドを入力し実行する
  • Windowsの場合はフォルダを開き、ウィンドウの中で(Shift+右クリック)を行うと、「PowerShell ウィンドウをここで開く」という項目が表示されるのでそれをクリックするとよい。
java -jar BuildTools.jar --rev latest --compile spigot --compile-if-changed

なお、「latest」の部分は作りたいサーバーのバージョンを入れるとそのバージョンのSpigotができあがる。

(例)Minecraft 1.16.5のSpigotサーバーを作りたい場合
java -jar BuildTools.jar --rev 1.16.5 --compile spigot --compile-if-changed

しばらく待つと、
Success! Everything completed successfully. Copying final .jar files now.
Copying spigot-x.xx.x-Rx.x-SNAPSHOT.jar to C:\Users\(User)\Desktop\セットアップ\.\spigot-x.xx.x.jar
 - Saved as .\spigot-x.xx.x.jar
と表示されて、BuildTools.jarを入れたフォルダに「spigot-x.xx.x.jar(x.xx.xはバージョン)」が生成される。
  • これがサーバーの本体である。そのほかのファイルは削除してもかまわないが、
    将来的にバージョンアップなどを行う場合や、CraftBukkitを作成する場合は、残しておくと次回生成時に時間短縮になる。

配置・起動

出来上がった「spigot-x.xx.x.jar」を別のフォルダに移し替える。(基本的にどこでも良いが、推奨は日本語パスが混ざらないことである)
この後はサーバー#サーバーの建て方に準じる。
サーバーのjarファイルを「spigot-x.xx.x.jar」に読み替えるだけで問題ない。

プラグイン

SpigotはCraftBukkit同様、プラグインによって様々な機能を追加できます。

基本的に、pluginsフォルダに好きなBukkitプラグインのファイルを入れるだけです。

プラグインによっては、jarファイルと同名のフォルダを一緒にpluginsフォルダ入れるものもあります。
各プラグインの使い方は、配布ページや付属readme.txt等を参照してください。

SpigotはCraftBukkitと互換性がありますが、完全ではありません。
またSpigotのAPIを使用したプラグインはCraftBukkitでは使えないことを留意しておいて下さい。

プラグインの入手リンク

これらのリンクから探すことが出来ます。
CraftBukkitプラグイン Wiki内
BukkitPlugins Bukkit公式プラグインページ
SpigotResources Spigot公式プラグインページ
サーバーMOD,プラグイン公開/紹介 非公式日本ユーザーフォーラム

spigot.yml

+長いため隠しています。
Description←説明
Boolean←true/false
List←リスト,
String←文字列
Integer←数字
Map←Map型

Contents
Commands
Messages
Stats
Main, ungrouped settings
Per-world settings

Commands(top)

tab-complete
ver:#1368以降:
Default: 0
Type: Integer
Description: コマンドを入力するのを簡略化することが出来るTabCompleteを設定します。
0 で何も文字を入力しなくても可能。
  • 1 で無効化
1 で一つ文字を入力してから可能。
2 で二つ文字を入力してから可能。(省略)
ver:#1368以前:
Default: true
Type: Boolean
Description: コマンドを入力するのを簡略化することが出来るTabCompleteを設定します。

silent-commandblock-console
Default: false
Type: Boolean
Description: コマンドブロックが実行された時のログをコンソールに表示するのかを設定します。

log
Default: true
Type: Boolean
Description: ログを作るか作らないかを設定します。

replace-commands
Default: [setblock, summon, testforblock]
Type: List
Description: Bukkitまたはバニラのコマンドを実行不可にするかを設定します(?)。

Messages(top)
In order to apply color codes to these messages, use the '&' symbol, followed by the appropriate number or letter. To create new lines, use '\n'.
whitelist
Default: "You are not whitelisted on this server!"
Type: String
Description:ホワイトリストがオンの時、ホワイトリストに入っていないプレーヤーが接続する時に、蹴られる時の画面のメッセージを指定します。

unknown-command
Default: "Unknown command. Type "help" for help."
Type: String
Description: 存在しないコマンドまたは登録されていないコマンドを実行した時に出るメッセージを指定します。

server-full
Default: "The server is full!"
Type: String
Description: サーバーが満員(player count matches your maximum slots)で、蹴られる時の画面のメッセージを指定します。

outdated-client
Default: "Outdated client! Please use {}"
Type: String
Description: 古いバージョンで接続しようとした時に出すメッセージを指定します。 {} はサーバーのバージョンへ置き換えます。

outdated-server
Default: "Outdated server! I'm still on {0}"
Type: String
Description: 新しいバージョンで接続しようとした時に出すメッセージを指定します。 {0} はサーバーのバージョンへ置き換えます。


restart
Default: "Server is restarting"
Type: String
Description: /restartコマンドを実行した時に、蹴られる時の画面のメッセージを指定します。

Stats(top)
disable-saving
Default: false
Type: Boolean
Description: true(有効)になっている時には、プレーヤーの統計と実績の保存を無効化します。It is recommended to force 'achievement.openInventory' (by setting it to 1) to prevent the achievement from freezing on the player's screen.

forced-stats
Default: {}
Type: Map
Description: A map of statistics and the values they should be forced to.
For instance, this snippet will automatically grant everyone the openInventory achievement, but will not notify players through chat or achievement box:
Code (Example):
forced-stats:
 achievement.openInventory: 1

Main, ungrouped settings(top)
netty-threads
Default: 4
Type: Integer
Description: Controls the amount of threads Netty will use to perform networking.

bungeecord
Default: false
Type: Boolean
Description: BungeeCordのみでしか接続できないように設定を出来ます。 This includes IP whitelisting (this should not be treated as a complete solution, rather, an extra layer of security, you still need to setup IPTables!) and pass-through IPs (so that servers will be able to see a player's true IP).

timeout-time
Default: 60
Type: Integer
Description: 設定した秒数間何も動きがなかったら終了/再起動する?
How long - in seconds - the server should go unresponsive before performing a thread dump in the console and, if configured, attempt to shut down and restart.

restart-on-crash
Default: true
Type: Boolean
Description: サーバーがクラッシュした時に、再起動するのかを設定出来ます。

restart-script
Default: ./start.sh
Type: String(File path)
Description: 鯖を起動するときのbat/shファイルを指定します。 このパスは/restart(再起動)をした時とrestart-on-crashを有効にしている状態でクラッシュした時に使用します。

late-bind
Default: false
Type: Boolean
Description: This delays players from entering the server until all plugins are loaded. Please note, it is advised to test this before putting it into practice as there may be problems with some plugins.

sample-count
Default: 12
Type: Integer
Description: Controls the amount of (randomly chosen) sample players shown when hovering over the player count in the client's server list.

player-shuffle
Default: 0
Type: Integer
Description: This prevents players from 'gaming' the server, and strategically relogging to increase their position in the tick order. Basically, players' packets are processed in order depending on when they joined, relogging changes your position in queue meaning your actions happen before others. Enabling this prevents the relogger from having the advantage. Useful for PVP servers.
The value is in ticks, so 20 = shuffle every second. Setting this option lower than 100 may cause performance issues (0 is fine though).

filter-creative-items
Default: true
Type: Boolean
Description: クリエイティブのプレーヤーが生むこと?が出来ないバニラアイテムのブラックリストを設定出来ます。

user-cache-size
Default: 1000
Type: Integer
Description: usercache.jsonの最大サイズを設定出来ます。

save-user-cache-on-stop-only
Default: false
Type: Boolean
Description: usercacheのデータを停止時のみでしか保存しないかを設定出来ます。

int-cache-limit
Default: 1024
Type: Integer
Description: intの最大サイズを指定するっぽいです。

moved-wrongly-threshold
Default: 0.0625
Type: Decimal
Description: "moved wrongly"変な動きをしたことを検知?? Increasing this number may reduce the amount of rubber-banding on the server but could potentially be abused by players as well.

moved-too-quickly-threshold
Default: 100
Type: Decimal
Description: "moved too quickly"早く動きすぎたことを検知?? This is effectively the maximum speed the server will allow a player to move. This can cause problems in certain cases, for example large TNT cannons.

global-api-cache
Default: false
Type: Boolean
Description: Mojangのユーザーネームをuuid API to be cached by Spigot as much as possible

Per-world settings(top)
ここの設定を有効にするには、
To apply these per-world, add a new section under world-settings with the world directory's folder name, example here.
verbose​
Default: true
Type: Boolean
Description: Whether or not to show the detailed report and configuration for each world in console/log on server startup. Can be disabled/enabled globally or per-world.

view-distance
Default: 10
Type: Integer
Description: プレーヤーに表示するチャンク数を設定します。値は15より少なくまた、1より多くなくてはなりません。
プレイヤーが多くいる場合では、この値を下げることで、サーバーの負荷を下げることができます。

merge-radius:
↳ exp
Default: 3.0
Type: Integer
Description: Controls the range - in blocks - which experience orbs will "group" together when on the ground.

↳ item
Default: 2.5
Type: Integer
Description:
Controls the range - in blocks - which items will "group" together when on the ground.​

chunks-per-tick
Default: 650
Type: Integer
Description: Controls the amount of chunks that will be updated for growth per tick. Lowering this will potentially make growth slower while saving resources, and vice versa.

item-despawn-rate
Default: 6000
Type: Integer
Description: Controls the amount of ticks required before an item entity on the ground will despawn. Lowering this will make items de-spawn faster (potentially saving resources as there are less entities to tick), while increasing this will take them longer to de-spawn and use up more resources (as the item entities will have to be ticked for longer until they de-spawn).

mob-spawn-range
Default: 4
Type: Integer
Description: Radius in chunks around the player in which mobs will spawn. Increasing it will make mobs seem more rare and dispersed, although lowering it may prevent certain spawns as there is not enough spots in which they are allowed to spawn in. See the Minecraft spawn mechanics for more information.

growth:
↳ x-modifier​
where x = cactus, melon, pumpkin, sapling, cane, mushroom, wheat
Default: 100
Type: Integer
Description: Controls the speed of growth for each crop/resource as listed above. When at the default value (100), they will grow at 'vanilla' speed, but may appear slower due to other settings (chunks-per-tick).
Does not improve performance to change these values. You should only change these away from 100 if you want to change the gameplay behavior of crop growth, and never change this for performance.​

entity-activation-range
Default: (animals: 32, monsters: 32, misc: 16)
Type: Integer
Description: Controls the range in blocks that entities will become "activated" - entities outside of this range will tick at a reduced rate to prevent server lag. When changed, these numbers can adversely affect gameplay, so edit with caution.
Lowering these values can give a major boost to performance, but at the cost of affecting gameplay behavior. Lowering these might impact item and monster farms, but should have little impact to normal behavior.

entity-tracking-range
Default: (players: 48, animals: 48, monsters: 48, misc: 32, other: 64)
Type: Integer
Description: エンティティが可視、または追跡されるブロック範囲を制御します。プレイヤーの描画距離を重要視するPVPサーバーにとっては特に有効です。
Controls the range in blocks that entities will become "visible" or otherwise known as "tracked" to the client. Entities outside of this range will be invisible as they are not being rendered to preserve CPU usage and bandwidth. This is particularly useful for PVP servers, as turning down the player range will 'nerf' wallhacks and radar to some extent. Miscellaneous controls the range for item frames, paintings, dropped items, experience orbs, and sign text. Other is a general maximum limit for all entities on your server.
Does not improve server performance to change these values. These will only help client side lag when lowering these.

save-structure-info
Default: true
Type: Boolean
Description: Toggles whether or not Spigot will save the structure info with the newly introduced saving method in 1.6.3. If disabled, this can cause issues with Eyes of Ender not pointing to strongholds, wither skeletons not spawning in Nether Fortresses, witches not spawning in huts in 1.7.


random-light-updates
Default: false
Type: Boolean
Description: Controls whether or not the server will randomly sample chunks in order to verify and fix lighting. As of 1.7, also controls whether or not the server will relight a chunk on its first tick.

nerf-spawner-mobs
Default: false
Type: Boolean
Description: When enabled, mobs which originate from a mob spawner will not have any AI. They will generally only be affected by water movement, with the exception of blazes which will still emit fireballs and float up and down.

zombie-aggressive-towards-villager
Default: true
Type: Boolean
Description: When disabled, zombies will no longer attempt to kill villagers, changing game play. But in return zombies use less time in order to process their AI, creating less lag as a result.

enable-zombie-pigmen-portal-spawns
Default: true
Type: Boolean
Description: When disabled, nether portals will no longer randomly spawn zombie pigmen in them. This can be used to combat large nether portal gold farms and does not effect the movement of entities, including zombie pigmen, through nether portals between dimensions.

max-entity-collisions
Default: 8
Type: Integer
Description: Limit a single entity to colliding x number of configurable times per tick. This setting lowers the performance impact of entities trapped in a 1x1 pen.

dragon-death-sound-radius
Default: 0
Type: Integer
Description: Limit the sound of the dragon's death.

wither-spawn-sound-radius
Default: 0
Type: Integer
Description: Limit the sound of spawning withers.

max-bulk-chunks
Default: 10
Type: Integer
Description: Set how many chunks are sent per packet.

max-tick-time
Default: (tile: 50, entity: 50)
Type: Integer
Description: The time - in ms - that (tile) entity operations can consume to calculate before the server skips on to the next task. Values between 10 - 20 for tiles and 20 - 25 for entities have been reported to provide a good performance increase.
Lowering these values can give a major boost to performance, but at the cost of affecting gameplay behavior. Lowering these for entities could lead to them to appear to lag/stutter but should have no other impact on normal behavior.

clear-tick-list
Default: false
Type: Boolean
Description: Can potentially prevent the possibility of the tick list increasing over time but introduces several issues, namely, growth slow-downs and modifications to the values many of you have fine-tuned. This option is here only for those who absolutely need it and are completely understanding of the consequences. It is not recommended for the majority of server owners and should be left at the default.

hopper-alt-ticking
Default: false
Type: Boolean
Description: Dynamically ticks hoppers so as to mirror vanilla behavior and provide a potential ticks per second boost. Best set to true for lots of idle hoppers. Enabling this option disables hopper-check.
Versions: Before Spigot 1.8.3

hopper-amount
Default: 1
Type: Integer
Description: Controls the maximum amount of items a hopper will take in/give out in a hopper tick cycle. Best used in conjunction with higher ticks per hopper transfer and check to combine actions into one.

seed-village
Default: 10387312
Type: Integer
Description: Controls the seed used for the placement of villages in your world, allowing for further customisation of their spawning. Default value represents vanilla.

seed-feature
Default: 1
Type: Integer
Description: Controls the seed used for the placement of features such as nether strongholds in your world, allowing for further customisation of their spawning. Default value represents vanilla.

hunger
Default:
walk-exhaustion: 0.2
sprint-exhaustion: 0.8
combat-exhaustion: 0.3
regen-exhaustion: 3.0
Type: Integer
Description: Controls the amount of hunger points to subtract upon performing the corresponding action.

hanging-tick-frequency
Default: 100
Type: Integer
Description: Controls the changes the amount of ticks between every time hanging is ticked for updates.

anti-xray:
↳ enabled
Default: true
Type: Boolean
Description: Self explanatory. Controls whether or not anti x-ray should be enabled.
↳ engine-mode
Default: 1
Type: Integer
Description: Controls the engine mode that anti x-ray uses.
Engine mode 1 will hide all ores in the world with stone. Ores exposed to air pockets will still be visible.
Engine mode 2 will hide everything by creating random ores all over the world, so that x-rayers will not be able to identify actual ores. Client and/or server latency due to overloading or network issues can cause undesired effects on the client side such as appearance of "fake ores".
↳ hide-blocks
Default: [1, 5, 14, 15, 16, 21, 48, 49, 54, 56, 73, 74, 82, 129, 130]
Type: List
Description: List of blocks (IDs) that should be hidden (obfuscated) by the anti x-ray within engine mode 1.
↳ replace-blocks
Default: [1, 5]
Type: List
Description: List of blocks (IDs) that should be replaced by hidden ores in Engine Mode 2

ticks-per:
↳ hopper-transfer
Default: 8
Type: Integer
Description: The time - in server ticks - between when a hopper pushes/pulls/receives items and when the hopper pushes/pulls more items. A value of 8 mirrors vanilla behavior.
↳ hopper-check (Removed in this 1.8.3 commit from March, 8th 2015)
Default: 8
Type: Integer
Description: The time - in server ticks - hoppers attempt to push/pull items since the last attempt. For example, a value of 8 means an empty hopper looks for item entities above, inventories above, etc. every 8 ticks. A value of 0 or 1 mirrors vanilla behavior. This option is disabled when hopper-alt-ticking is set to true.​

BungeeCordの利用

BungeeCordについてはBungeeCord(Wiki内解説)を参照して下さい。
BungeeCordはSpigotMCによって作成されているため、BungeeCordを使用するときはSpigotの使用をおすすめします。

リンク

サイト名 リンクアドレス 説明
Bukkit http://bukkit.org/ Bukkit公式
Bukkit wiki http://wiki.bukkit.org/Main_Page Bukkit公式Wiki
Bukkit Forum http://forums.bukkit.org/ Bukkit公式
SpigotMC https://www.spigotmc.org/ Spigot公式
SpigotMC CommunityWiki https://www.spigotmc.org/wiki/index/ Spigot公式Wiki
Spigot 日本ユーザー Wiki https://spigotuser.jp/wiki/メインページ 宮乃ペコ氏

編集用コメント

コメント欄はMirahezeへの移行に伴い削除されます。
今後はMinecraft Japan Wiki提供Discordサーバーをご利用ください。
最終更新:2021年01月03日 18:40