
画面右にスコアボードが表示されている様子。
スコアボード(英:Scoreboard)は、プレイヤーやエンティティに結び付けた値を追跡・編集・表示することの出来るシステムである。サーバーの管理者やマップ製作者向けの機能であり、コマンドを介して使用することができる。
オブジェクト[]
オブジェクト(英:Objective)は値の項目のような存在である。オブジェクト下にはエンティティ毎に値を記録することができ、その値の値域は-21億4748万3648以上21億4748万3647以下である。オブジェクトは「名前」「変動基準」「表示名」の3つの変数を有する。
オブジェクトの名前(英:Name)は、コマンド、ターゲットセレクターの引数、およびオブジェクトの保存ファイルなどの場面においてオブジェクトを指定する際に内部的に使用される名前である。Java Editionでは大文字・小文字のアルファベット、数字、アンダーバー、ピリオド、マイナス・プラスが使用できる、Bedrock Editionでは、すべての文字を使用できる。
オブジェクトの表示名(英:Display name)は、公にオブジェクトの名前を表示する際に使用されるJSONテキストである。基本的にすべての文字を使用することができ、JSONテキストを利用した様々な装飾・機能を付与することができる。また内部名と違って、別のオブジェクトと同じ表示名を使用しても良い。
オブジェクトの変動基準(英:Criterion)は、そのオブジェクト下の値がどのような条件によって変動するかを規定するものである。有効な変動基準の値とその説明は下表に記した通りである。
オブジェクト内に記録されている値をスコアと呼ぶ。変動基準によっては、スコアはコマンドで変更することができる。
オブジェクト下でスコアを保有しているエンティティをスコアホルダーと呼ぶ。オブジェクト内ではスコアホルダーはプレイヤー名かエンティティのUUIDで記録されているが、プレイヤー名は実在するプレイヤーの名前でなくてもよい。また非Mobエンティティのスコアは、プレイヤーのものと違って死亡すると削除される。
スコアはスコアボードとして表示される他に、ターゲットセレクターによる条件絞り込み、JSONテキストを介したテキストとしての表示も可能である。
変動基準[]
Java Edition[]
単体の変動基準[]
変動基準名 説明 編集可能 dummy この変動基準下では、スコアの値は死亡などのゲームイベントでは変化せず、 /scoreboard
コマンドでのみ変更できる。この変動基準は、イベントのフラグや状態の記録、通貨等々の仕様の実現に有用である。はい trigger この変動基準下では、 /scoreboard
に加えて/trigger
コマンドでもスコアの値を変更できる。/trigger
コマンドは、変動基準がtrigger
かつ/scoreboard players enable...
コマンドによって「有効化」されているオブジェクトに対して、自分のスコアの値のみを変更できるコマンドである。要求権限レベルが0であることから、普通のプレイヤーが自分でスコアボードの値を変更することができる。/tellraw
からクリック機能の設定されたJSONテキストを送信させて、それを受け取った一般プレイヤーにがテキスト上のクリック機能を介して何らかの入力を行う際などに、クリック機能にこのコマンドを設定すると有用である。はい deathCount プレイヤーが死亡した際に、スコアの値が自動で増加する。 はい playerKillCount プレイヤーが他のプレイヤーを殺害した際に、スコアの値が自動で増加する。 はい totalKillCount プレイヤーが他のプレイヤーやMobを殺害した際に、スコアの値が自動で増加する。 はい health プレイヤーの残り体力(ハート半分が1に相当)。設定後プレイヤーの体力が最初に変動するまでは0と表示されることがある。普通のプレイヤーの最大体力は20であるが、この変動基準下のスコアには追加のハートも計上されるため、属性値「最大体力」や体力増強、衝撃吸収の効果によりスコアが20を超えることもある。 いいえ xp プレイヤーが最後に死んでから獲得した経験値の値(すなわち彼らのスコア)。 いいえ level プレイヤーの現在の経験値レベル。 いいえ food プレイヤーの満腹度。値域は0~20であり、隠し満腹度等は計上されない。設定から初めてプレイヤーの満腹度が変動するまでは、0と表示されることがある。Player.datフォーマットの foodLevelに相当する。 いいえ air プレイヤーの持っている空気の量。プレイヤーのNBTタグの Airに相当する。値域は-20から300。 いいえ armor プレイヤーの防御力。値域は0以上20以下で、設定から初めてプレイヤーの防御力が変動するまでは、0と表示されることがある。 いいえ
統計由来の変動基準[]
- 統計の名前空間IDを変動基準名として指定することで、統計の値が増加するたびにスコアボードの値を増加させるよう設定できる。スコアの値は現在の統計値になるのではなく、あくまで統計値が増加した際にスコアも同様に増加するのみであることに注意されたい。例えばある統計値が20である状態でその統計値を変動条件として設定したオブジェクトを作成、その後統計値が10増加したなら、統計値は30、スコアは10になる。統計の名前空間IDの仕組みと一覧はこちら。
- また統計データとしては存在しないが、以下の変動基準がスコアボード専用に用意されている。
変動基準の名前 | 説明 | 挿入部の種類数 | ||
---|---|---|---|---|
teamkill.<チーム色> | 挿入部にはチームの色が入る。指定の色のチームに属するプレイヤー・エンティティを殺害すると、殺害したプレイヤーの値が増加する。
|
16 | ||
killedByTeam.<チーム色> | 挿入部にはチームの色が入る。指定の色のチームに属するプレイヤー・エンティティに殺害されると、殺害されたプレイヤーの値が増加する。
|
16 |
Bedrock Edition[]
現在、Bedrock Editionには変動基準がdummy
のみしか存在しない。したがって、Bedrock Editonのスコアはコマンドでしか変更できない。
表示設定[]
表示スロット[]

Playerという名前でスコアが6174のプレイヤーが記録されているオブジェクトがlist
のスロットに、表示名が「サイドバー」で、スコアが495の「ダミー1」という偽プレイヤーが記録されているオブジェクトがsidebar
のスロットに、それぞれ表示されている。
コマンド/scoreboard objectives setdisplay
を介することで、オブジェクトを指定の表示スロットに表示させることができる。各表示スロットには同時に一つだけオブジェクトを表示することができ、複数の表示スロットには同じオブジェクトを表示することもできれば、別々のオブジェクトを表示することもできる。
スロット名 | 説明 |
---|---|
list (プレイヤーリスト) |
Java Editionでは、プレイヤーリスト(デフォルトではTab ↹で表示)のプレイヤー名の右側に黄色い数字または複数のハートのマーク[注釈 1]でスコアを表示する。このスロットでは見出し(オブジェクトの表示名)が表示されず、またオンラインの実在のプレイヤー以外のスコアホルダーも表示されない。 シングルプレイでも表示される。 |
sidebar (サイドバー) |
画面右側に表示される。最上部に見出しとしてオブジェクトの表示名が表示され、オブジェクト内でスコアの大きい15体のエンティティとそのスコアが表示される。プレイヤーはオフラインであっても表示され、またそのオブジェクトで追跡されていないプレイヤー(オブジェクトの作成から一度もそのオブジェクト上のスコアの更新のないプレイヤー)が表示されない。また偽のプレイヤー名も表示されるが、名前が# から始まる偽のプレイヤーは常にスコアが表示されない。
|
sidebar.team.<チーム色>[Java Edition限定] (チーム用サイドバー) |
基本的な機能はsidebar と同じであるが、指定の色を使用しているチームに属するプレイヤーにのみ表示される。例えば、"sidebar.team.green"は「緑色」を使用しているチームに属するプレイヤーにのみ表示される。有効なチーム色は"black"、"dark_blue"、"dark_green"、"dark_aqua"、"dark_red"、"dark_purple", "gold"、"gray"、"dark_gray"、"blue"、"green"、"aqua"、"red"、"light_purple"、"yellow"、"white"である。なお、通常のサイドバーおよび他色のサイドバーと同時に表示させることはできない。また、チーム用サイドバーには他チームのスコアホルダーのスコアも表示されうる。
|
below_name(名前の下) | プレイヤーの頭の上の名前の下に、オブジェクトの表示名とそのスコアを表示する。これはプレイヤーから10ブロック先や、プレイヤーがスニークしている際には非表示になる。シングルプレイでは表示されない。 |
スコアホルダーの表示名[]
スコアホルダーの表示名はオブジェクト毎に自由に設定することができる。プレイヤーはもちろん、ダミーのプレイヤー、非プレイヤーエンティティに対しても表示名を設定することができる。この表示名にはJSONテキストが使用できるため、非ASCII文字や様々な装飾を施すことができる。
設定された表示名は表示スロットにスコアホルダーの名前を表示する際に使用され、チャットメッセージなどそれ以外の状況では表示されない。表示名が設定されていないスコアホルダーは、プレイヤー・ダミーのプレイヤーの場合は本来のプレイヤー名が、非プレイヤーエンティティはUUIDが表示される。
チームによる名前の接頭辞・接尾辞・チーム色などの装飾は変更後の表示名に対しても機能するが、チーム色に関しては表示名のJSONテキストに colorが設定されている場合はそちらが優先される。
また、/scoreboard objectives modify <オブジェクト> displayautoupdate [true|false]
を使用すると、スコアの更新のある度にそのスコアホルダーの表示名の自動更新を行うよう設定することができる。
表示名では、 insertion、および clickEvent、 hoverEventなどの相互作用性の機能は動作せず、また値の確定も行われないため score、 selector、 nbtも使用できない。
自動更新が行われると、プレイヤー・ダミーのプレイヤーの場合は本来のプレイヤー名が、非プレイヤーエンティティは種族名、カスタム名が設定されている場合はその名前が表示名として使用される。また、スコアホルダーが結び付けられているエンティティ読み込まれているエンティティが存在しないために表示名を検出できなかった場合は現在の表示名が維持される。
スコアの表示形式[]
表示スロットに表示されるスコアは、その表示形式を自由に設定することができる。表示形式はスコア毎、オブジェクト毎のいずれでも設定できるが、スコアの設定の方が優先的に反映される。
表示形式として、style
、fixed
およびblank
の3種類が使用できる。
style
では、{"bold": true}
など装飾部分のみを記述したJSONテキストを指定することでスコアに装飾を施すことができる。なお、ここでは insertion、および clickEvent、 hoverEventなどの相互作用性機能は動作しない。
fixed
では、指定したJSONテキストを直接スコアとして表示することができる。同様に相互作用性の機能は動作しない上、値の確定も行われないので score、 selector、 nbtは使用できない。
blank
ではスコアが表示されなくなる。
またscoreboard objectives modify <オブジェクト> rendertype hearts
により描画形式がハートに設定されている場合は、表示スロットlist
上ではこれらの表示形式を無視してハートでスコアが表示される。
タグ[]
タグ、ないしスコアボードのタグは、プレイヤーを含むエンティティのNBTデータ上にプレイヤーが単数および複数の文字列を保存しておくことの出来る機能である。保存した文字列は、エンティティのNBTデータ上の Tagに格納される。タグとして保存した文字列は、大文字・小文字を区別して扱われる。タグは/tag
で追加・表示・削除が可能である。
タグとして保存された文字列は、ターゲットセレクターでエンティティを絞り込むのに利用できる他、一応NBTデータである為/data get entity
から読み込むことも可能である。
なおここで言うタグは、ブロックやエンティティ等ゲーム上の様々な要素の属性付けを行うために使用されるタグや、NBTデータを構成する要素であるタグ(データタグ)とは別物である[注釈 2]。
チーム[]
チームを利用すると、プレイヤーをチームに分類し、チームごとに振る舞いを設定できる。
チームでは、内部名、表示名、チーム色、メンバー、メンバーの名前の接頭辞・接尾辞、同士討の許可、死亡メッセージの表示設定、当たり判定の設定、名前の表示設定を設定できる。
内部名は、/team
コマンド、ターゲットセレクターのチームでの絞り込み時、およびファイル上の名称に使用されるチームの名前である。
表示名は、チャットやコマンドのメッセージ等様々な場面で表示されるチーム名である。JSONテキストが使用できる。
チーム色は、属するプレイヤーのプレイヤー名の表示色、表示するチーム用サイドバーの種類、発光時の発光の色を決定する。
メンバーの名前の接頭辞・接尾辞では、属するプレイヤーの名前の前や後ろに指定の文字列を表示するよう指定できる。JSONテキストが使用できる。
同士討の許可では、同じチームに属するプレイヤーが互いに攻撃できるかどうかを設定できる。デフォルトではtrue
に設定されている。false
で同士討ちを不可に出来、近接攻撃、弓、負傷のスプラッシュポーションでのダメージを与えることができなくなる。ただし、毒等の間接的なデバフをスプラッシュポーションで与えることはできる。プレイヤー以外のエンティティも一部これに影響される。
当たり判定の設定では、他のエンティティとの衝突を「通常通り」「一切なし」「同チーム同士のみ」「別チーム同士のみ」から指定できる。
また死亡メッセージやプレイヤー名も、「一切表示しない」「チーム内にのみ表示」「チーム外にのみ表示」「全体に表示」から表示設定を選ぶことができる。
各エンティティは、一度に複数のチームに属することはできない。
またチームはターゲットセレクターでチームから対象を絞り込む際にも使用できる。
コマンド[]
スコアボードに関するコマンドには、以下の4種がある。
/scoreboard
- スコアボードに関する設定をする。/team
- チームに関する設定をする。/tag
- タグに関する設定をする。/trigger
- 変動基準trigger
のオブジェクト上の自分の値を変更する。
NBTフォーマット[]
スコアボードに関するデータは、ワールドの保存データ内にscoreboard.datファイルというGZip形式で圧縮されたNBTファイルでスコアボードシステム全体を一括して保存されている。このファイルのNBT構造は次のとおりである。
- 最上位のコンパウンド。
- data: スコアボードシステム全体のデータを格納するオコンパウンド。
- Objectives: 存在するオブジェクトのリスト。
- 各オブジェクトのデータを格納するコンパウンド。
- format このオブジェクト上のスコアの表示形式。
- スコアの表示形式
- CriteriaName: このオブジェクトの変動基準。
- display_auto_update: 1か0(trueかfalse)で指定する。このオブジェクトでスコアの表示名の自動更新が行われているかどうか。
- DisplayName: このオブジェクトの表示名。直列化したJSONテキストで指定する。
- Name: このオブジェクトの内部名。
- RenderType: このオブジェクトのスコアの描画形式。
heart
とinteger
(デフォルト)が使用できる。
- format このオブジェクト上のスコアの表示形式。
- 各オブジェクトのデータを格納するコンパウンド。
- PlayerScores: スコアボードのシステム上にあるスコアのリスト。
- Teams: スコアボード上に存在するチームのリスト。
- 各チームのデータを格納しているコンパウンド。
- AllowFriendlyFire: 1か0(trueかfalse)で指定する。このチーム内での同士討ちが許可されているかどうか。
- SeeFriendlyInvisibles: 1か0(trueかfalse)で指定する。このチーム内において、透明化している仲間を半透明として見ることができるかどうか。
- NameTagVisibility: このチームにおける頭の上の名前の表示設定。
never
なら一切表示なし、hideForOtherTeams
では同チーム内にのみ表示、hideForOwnTeams
ではチーム外にのみ表示、always
では通常通り表示。 - DeathMessageVisibility: このチームに属するプレイヤーの死亡メッセージの表示設定。
never
なら一切表示なし、hideForOtherTeams
では同チーム内にのみ表示、hideForOwnTeams
ではチーム外にのみ表示、always
では通常通り表示。 - CollisionRule: このエンティティ同士の当たり判定の設定。
never
なら一切表示なし、hideForOtherTeams
では同チーム内にのみ表示、hideForOwnTeams
ではチーム外にのみ表示、always
では通常通り表示。 - DisplayName: このチームの表示名。直列化したJSONテキストで指定する。
- Name: このチームの内部名。
- MemberNamePrefix: このチームに属するプレイヤーの名前の前に付ける文字列。JSONテキストで指定する。
- MemberNameSuffix: このチームに属するプレイヤーの名前の後ろに付ける文字列。JSONテキストで指定する。
- TeamColor: このチームのチーム色。有効な値は上述の通り。
- Players: チームに属するプレイヤー名のリスト。
- 各プレイヤー名。
- 各チームのデータを格納しているコンパウンド。
- DisplaySlots: 表示スロットの状態を格納しているコンパウンド。表示スロットにオブジェクトが表示されている場合のみ生成される。
- slot_<スロット番号>: このスロットに表示されているオブジェクトの内部名。キーの名前のスロット番号の部分には、下表に示した番号が入る。
- Objectives: 存在するオブジェクトのリスト。
- DataVersion: このスコアボードデータが保存が行われた際のデータバージョン。
- data: スコアボードシステム全体のデータを格納するオコンパウンド。
番号 | スロット位置 | スロット名 |
---|---|---|
0 | プレイヤーリスト | list |
1 | サイドバー | sidebar |
2 | プレイヤー名の下 | below_name |
3 | チーム用サイドバー | sidebar.team.black |
4 | sidebar.team.dark_blue | |
5 | sidebar.team.dark_green | |
6 | sidebar.team.dark_aqua | |
7 | sidebar.team.dark_red | |
8 | sidebar.team.dark_purple | |
9 | sidebar.team.gold | |
10 | sidebar.team.gray | |
11 | sidebar.team.dark_gray | |
12 | sidebar.team.blue | |
13 | sidebar.team.green | |
14 | sidebar.team.aqua | |
15 | sidebar.team.red | |
16 | sidebar.team.light_purple | |
17 | sidebar.team.yellow | |
18 | sidebar.team.white |
歴史[]
Java Edition | |||||
---|---|---|---|---|---|
1.5 | 13w04a | スコアボードが追加された。 | |||
13w05a | チームに基づく機能が追加された。 | ||||
1.7.2 | 13w36a | 統計情報に基づくオブジェクトの条件が追加された。 | |||
1.8 | 14w02a | プレイヤー以外のエンティティもチームに参加したり、スコアを持ったりすることができるようになった。 | |||
14w06a | trigger が追加された。チームキルに基づくオブジェクトの条件が追加された。
| ||||
コマンド/scoreboard players enable が追加された。 | |||||
エンティティ名の引数に「*」を使用してスコアボードに記録される全てのエンティティを対象にすることができるようになった。 | |||||
コマンド/scoreboard players reset にオブジェクト名の引数が追加された。 | |||||
統計情報に基づくオブジェクトの条件に数値IDではなく名前のIDを使うようになった。 | |||||
オブジェクトの条件achievement.overpowered が追加された。 | |||||
14w07a | コマンド/scoreboard players operation と/scoreboard players test が追加された。
| ||||
「#」で始まる名前のみせかけのプレイヤーのスコアはサイドバーに表示されないようになった。 | |||||
チーム固有のサイドバーが追加された。 | |||||
nametagVisibility がチームの設定に追加された。 | |||||
14w10a | deathMessageVisibility がチームの設定に追加された。
| ||||
コマンド/scoreboard players set 、/scoreboard players add 、/scoreboard players remove にデータタグの引数が追加された。 | |||||
オブジェクトの条件stat.crouchOneCm 、stat.sprintOneCm 、stat.timeSinceDeath が追加された。 | |||||
14w25a | コマンド/scoreboard players operation の操作に= 、< 、> が追加された。 | ||||
14w29a | サイドバーのエンティティ名のソート順がスコアの次にアルファベット順を優先するようになった。 | ||||
14w30a | オブジェクトの条件stat.talkedToVillager 、stat.tradedWithVillager が追加された。 | ||||
? | コマンド/scoreboard players operation に操作>< が追加された。 | ||||
1.8.2 | オブジェクトの条件stat.cauldronFilled 、stat.cauldronUsed 、stat.armorCleaned 、stat.bannerCleaned 、stat.brewingstandInteraction 、stat.beaconInteraction 、stat.dropperInspected 、stat.hopperInspected 、stat.dispenserInspected 、stat.noteblockPlayed 、stat.noteblockTuned 、stat.flowerPotted 、stat.trappedChestTriggered 、stat.enderchestOpened 、stat.itemEnchanted 、stat.recordPlayed 、stat.furnaceInteraction 、stat.craftingTableInteraction 、stat.chestOpened が追加された。 | ||||
1.9 | 15w32a | オブジェクトの条件stat.sneakTime が追加された。 | |||
15w32b | コマンド/scoreboard players tag が追加された。
| ||||
オブジェクトの種類xp 、food 、air が追加された。 | |||||
15w33a | オブジェクトの条件stat.pickup 、stat.drop が追加された。
| ||||
オブジェクトの種類armor 、level が追加された。 | |||||
15w36a | collisionRule がチームの設定に追加された。 | ||||
15w49a | オブジェクトの条件stat.aviateOneCm が追加された。 | ||||
1.13 | pre7 | コマンド/scoreboard objectives modify が追加された。 | |||
1.13.1 | 18w31a | 演算子%= が% の使用からMath.floorMod に変更された。 | |||
1.18 | 21w37a | スコアボードのオブジェクト名、プレイヤー名、チーム名の文字数制限が削除された。 | |||
1.20.2 | 23w31a | 表示スロット名belowName がbelow_name に改名された。 | |||
1.20.3 | 23w46a | スコアが存在しないオブジェクトでも表示されるようになった。 | |||
スコアホルダーの表示名を設定できるようになった。 | |||||
スコアの表示形式を設定できるようになった。 | |||||
Bedrock Edition | |||||
1.7.0 | beta 1.7.0.2 | 基本的なスコアボードの仕組みが追加された。 | |||
オブジェクトの種類dummy が追加された。 |
問題点[]
「スコアボード」に関する問題点は、バグトラッカーにて管理されている。問題点の報告はそちらで行ってほしい。
注釈[]
- ↑
/scoreboard objectives modify <objective> rendertype (hearts|integer)
で設定可能 - ↑ スコアボードのタグはNBTデータであるため、スコアボードのタグはデータタグの一種ではあるのだが
脚注[]
デモ版 | |||||||
---|---|---|---|---|---|---|---|
開発 |
| ||||||
技術的情報 |
| ||||||
マルチプレイ | |||||||
ゲームのカスタマイズ |