更新日:
スコアボードの基本
/scoreboard objectives add points dummy "ポイント"
/scoreboard objectives setdisplay sidebar points
/scoreboard players add @p points 1
1行目で「points」という記録を作り、2行目で画面右に表示し、3行目で1ポイント加えます。dummyは、コマンドでだけ数字を変える種類です。
例1:キル数を数える(Java版)
/scoreboard objectives add kills playerKillCount "キル数"
/scoreboard objectives setdisplay sidebar kills
playerKillCountにすると、プレイヤーを倒したときに自動で1増えます。Mobを倒した数ならtotalKillCount、死んだ回数ならdeathCountです。統合版は自動で数える種類がないため、dummyで作ってコマンドで加算します。
例2:タイマーを作る
リピートコマンドブロックは1秒に20回動くので、20回数えると1秒です。
# 準備
/scoreboard objectives add timer dummy
/scoreboard players set #game timer 1200
# リピート(常時実行)
/scoreboard players remove #game timer 1
# チェーン(常時実行)
/execute if score #game timer matches 0 run title @a title "終了!"
1200は60秒(1200 ÷ 20)です。#gameのように#から始まる名前は、サイドバーに表示されない内部用の記録になります。
秒で表示したいときは、別のスコアに20で割った値を入れます。
/scoreboard players set #20 timer 20
/scoreboard players operation #sec timer = #game timer
/scoreboard players operation #sec timer /= #20 timer
例3:勝者を決める
/execute as @a if score @s points matches 10.. run title @a title {"selector":"@s"}
10ポイント以上になった人の名前を全員の画面に表示します。終了処理は1回だけ実行されるように、タグやスコアで状態を管理します。
リセットする
/scoreboard players reset @a points
/scoreboard objectives remove points
1行目は全員のポイントを消します(記録そのものは残る)。2行目は記録ごと削除します。
統合版の違い
統合版の記録の種類はdummyだけです。キル数や死亡数は、倒したときや死んだときを自分で判定して加算する必要があります。サイドバー表示や加算・比較のコマンドは同じように使えます。
お金やショップの仕組みはscoreboardでポイント・お金を作る基本で解説しています。
よくある質問
サイドバーに日本語の名前を表示したいです。
objectives addの最後に表示名を書くと、その名前で表示されます。IDは英数字にしておきます。
スコアがサイドバーに出ません。
そのプレイヤーのスコアが一度も設定されていないと表示されません。最初に/scoreboard players set @a points 0で0を入れておきます。
チームごとの合計を出したいです。
scoreboard players operationで、チーム用の記録に各メンバーのスコアを足し合わせます。