Repository navigation
ScoreModule
このモジュールは、Minecraft Bedrock Edition の Script API を拡張し、スコアボード操作、チーム管理、プレイヤー制御、ブロック/アイテム操作など、ゲームプレイをより豊かにするための様々なコマンドを提供します。
- リセット: スコアボードのスコアを初期化 (個別/全スコアボード)。
- コピー: 別のスコアボードから値をコピー (プレースホルダーで動的な値も取得可能)。
- 削除: 不要なスコアボードを削除 (フォームUI/一括削除)。
- 数値選択: 指定した数値リストからランダムに1つ選び、スコアボードに設定。
- チーム分け: 特定のタグを持つプレイヤーを指定数・上限人数でチーム分けし、スコアボードに記録。
- チーム人数に応じたコマンド実行: 指定タグを持つプレイヤー数に応じて、異なるコマンドを実行 (0人判定、最多人数判定)。
- フォーム強制閉鎖: プレイヤーが開いているフォームを強制的に閉じる。
- タグ変更: 指定タグを持つ全プレイヤーのタグを一括変更。
- クローン: 指定座標のブロックを別の座標に複製。
- コンテナアイテム設定: チェスト/樽などのコンテナにアイテムを設定 (詳細なアイテムカスタマイズ、ランダムスロット配置)。
- ランダムブロック設置: 指定座標に、指定ブロックをランダムな比率で設置。
- アイテムランダムドロップ: 指定範囲内に、指定されたアイテムをランダムな比率でドロップ
機能: スコアボードのスコアをリセット (個別 or 全部)。
コマンド: /scriptevent ws:resetScore <スコアボード名|-all>
-
<スコアボード名>: リセット対象のスコアボード名。 -
-all: すべてのスコアボードをリセット。
例:
-
my_scoreboardをリセット:/scriptevent ws:resetScore my_scoreboard - 全スコアボードをリセット:
/scriptevent ws:resetScore -all
機能: 指定数値からランダムに1つ選び、ws_numberスコアボードへ設定。
コマンド: /scriptevent ws:number <数値1>,<数値2>,...
-
<数値1>,<数値2>,...: カンマ区切りの数値リスト。
例: 1, 5, 10, 20からランダム: /scriptevent ws:number 1,5,10,20
機能: 指定スコアボードの値をws_<コピー元>スコアボードへコピー。
コマンド: /scriptevent ws:score=<コピー元スコアボード名>
-
<コピー元スコアボード名>: コピー元のスコアボード。
プレースホルダー (動的な値を生成):
| プレースホルダー | 説明 |
|---|---|
[allPlayer] |
ワールド内の全プレイヤー数。 |
[uptime] |
サーバーの稼働時間 (秒)。 |
[ver] |
スクリプトバージョン (ver 変数の値)。 |
[time] |
現在時刻 (時:分)。例: 14:35
|
[tag=<タグ名>] |
指定タグを持つプレイヤー数。 |
[score=<スコアボード名>] |
指定スコアボードの 最高スコア。 |
[score=<スコアボード名>,<プレイヤー名>] |
指定スコアボードの、指定 プレイヤーのスコア。 |
[scoreN=<スコアボード名>] |
指定スコアボードの最初の参加者の名前 |
[scoreN=<スコアボード名>,<プレイヤー名>] |
指定スコアボードの、指定プレイヤーの名前。見つからない場合は0
|
例:
-
player_killsをws_player_killsへコピー:/scriptevent ws:score=player_kills
機能: 指定条件でプレイヤーをチーム分け、チーム番号をスコアボードへ。
コマンド: /scriptevent ws:team set <チーム数>:<チーム内上限人数> <タグ名> <スコアボード名>
-
<チーム数>: 作成するチーム数。 -
<チーム内上限人数>: 1チームの最大人数。 -
<タグ名>: チーム分け対象プレイヤーのタグ (このタグを持つ人のみ対象)。 -
<スコアボード名>: チーム番号を記録するスコアボード名。
例: gameタグ持ちを2チーム(最大2人)に分け、team_numberへ記録: /scriptevent ws:team set 2:2 game team_number
機能: タグ別プレイヤー数で異なるコマンドを実行 (0人判定、最多判定)。
コマンド: /scriptevent ws:teamCount <チームタグ1,チームタグ2,...> <JSON> [true]
-
<チームタグ1,チームタグ2,...>: カンマ区切りのタグリスト。 -
<JSON>: 各タグに対応するコマンド (JSON配列)。-
{ "チームタグ": "実行コマンド" }の形式。
-
-
[true](オプション):- 無し/
false: いずれかのチームが 0人になった時、そのタグのコマンド実行。 -
true: 最も人数の多いチーム のタグのコマンド実行。- 最多同数の場合、
"same"キーのコマンド実行 (無ければ何もしない)。
- 最多同数の場合、
- 無し/
例:
-
red_team0人でsay Red team eliminated!、blue_team0人でsay Blue team eliminated!:/scriptevent ws:teamCount red_team,blue_team [{"red_team":"say Red team eliminated!"},{"blue_team":"say Blue team eliminated!"}] -
team1,team2で最多人数のチームでコマンド分岐、同数ならsameのコマンド:/scriptevent ws:teamCount team1,team2 [{"team1":"say Team 1 wins!"},{"team2":"say Team 2 wins!"},{"same":"say It's a tie!"}] true
機能: スコアボード削除用フォーム(UI)を表示。
コマンド: /scriptevent ws:scoreDelete form
機能: ws_で始まるスコアボードを 一括削除 (ws_moduleは除く)。
コマンド: /scriptevent ws:scoreDelete all
機能: 現在開いているすべてのフォームを閉じます
コマンド: /scriptevent ws:closeForm
機能: 指定タグを持つ 全プレイヤー のタグを変更。
コマンド: /scriptevent ws:changeTag <元のタグ>,<新しいタグ>
-
<元のタグ>: 変更前のタグ。 -
<新しいタグ>: 変更後のタグ。
例: old_tag持ち全員をnew_tagへ: /scriptevent ws:changeTag old_tag,new_tag
機能: 指定座標のブロックを別の座標へ複製。
コマンド: /scriptevent ws:cloneBlock <JSON>
-
<JSON>: 以下の構造のJSON文字列。
{
"form": [
{"x": <x座標>, "y": <y座標>, "z": <z座標>},
...
],
"to": [
{"x": <x座標>, "y": <y座標>, "z": <z座標>},
...
]
}-
form: コピー元の座標配列。 -
to: コピー先の座標配列。
例: (0, 64, 0) を (10, 64, 10) へ: /scriptevent ws:cloneBlock {"form":[{"x":0,"y":64,"z":0}],"to":[{"x":10,"y":64,"z":10}]}
機能: コンテナ(チェスト等)にアイテムを設定。詳細設定、ランダム配置可。
コマンド: /scriptevent ws:chestFill <JSON>
-
<JSON>: 以下の構造のJSON文字列。
{
"locations": [
{ "x": <x座標>, "y": <y座標>, "z": <z座標>},
...
],
"items": [
{
"id": "<アイテムID>",
"amount": <数量>,
"data":<データ値>,
"name": "<アイテム名>",
"lore": ["<説明文1>", "<説明文2>", ...],
"lockMode":<ロックモード>,
"keepOnDeath":<死亡時保持>,
"enchantments": [
{"type": "<エンチャントの種類>", "level": <レベル>},
...
]
},
...
],
"randomSlot": <true/false>
}-
locations: コンテナの座標配列。 -
items: 設定アイテムの配列。-
id: アイテムID (例:minecraft:diamond)。 必須 -
amount: 数量 (デフォルト: 1)。 -
data: データ値(デフォルトは0) -
name: カスタム名。 -
lore: 説明文 (文字列配列)。 -
lockMode:コンテナスロットのロックモード。"slot"でスロット固定、"inventory"でインベントリ固定(省略可)。 -
keepOnDeath:プレイヤー死亡時にアイテムを保持するかどうか(省略可)。 -
enchantments: エンチャント配列。-
type: エンチャントの種類 (例:sharpness)。 -
level: エンチャントレベル。
-
-
-
randomSlot:-
true: ランダムスロットに配置。 -
false/省略: 空きスロットの先頭から順に配置。
-
例: (0, 64, 0)のチェストにダイヤ2個(名前:Special Diamond, 説明:Shiny!)をランダム配置:
/scriptevent ws:chestFill {"locations":[{"x":0,"y":64,"z":0}],"items":[{"id":"minecraft:diamond","amount":2,"name":"§bSpecial Diamond","lore":["§7Shiny!"]}],"randomSlot":true}
機能: 指定座標に、指定ブロックをランダム比率で設置。
コマンド: /scriptevent ws:randomBlock <JSON>
-
<JSON>: 以下の構造のJSON。
{
"locations": ["<x1> <y1> <z1>", "<x2> <y2> <z2>", ...],
"blocks": [
{ "id": "<ブロックID>", "weight": <重み> },
...
]
}-
locations: 設置座標の配列 (文字列形式"x y z")。 -
blocks: 設置ブロックと重みの配列。-
id: ブロックID (例:minecraft:stone)。 必須 -
weight: 出現率の重み (大きいほど出やすい)。
-
例: (0, 64, 0) と (1, 64, 0) に土(重み3)と石(重み1)をランダム設置:
/scriptevent ws:randomBlock {"locations":["0 64 0", "1 64 0"],"blocks":[{"id":"minecraft:dirt","weight":3},{"id":"minecraft:stone","weight":1}]}
機能: 指定範囲にアイテムをランダム比率でドロップ。詳細設定可。
コマンド: /scriptevent ws:randomDrop <JSON>
-
<JSON>: 以下の構造のJSON。
{
"start": { "x": <x1>, "y": <y1>, "z": <z1> },
"end": { "x": <x2>, "y": <y2>, "z": <z2> },
"items": [
{
"id": "<アイテムID>",
"amount": <数量>,
"data": <データ値>,
"name": "<アイテム名>",
"lore": ["<説明文1>", "<説明文2>", ...],
"lockMode": <ロックモード>
"keepOnDeath":<死亡時保持>
"enchantments": [
{"type": "<エンチャントの種類>", "level": <レベル>},
...
],
"weight": <重み>
},
...
],
"dropCount": <ドロップ数>
}-
start: 範囲開始座標 (直方体の最小角)。 -
end: 範囲終了座標 (直方体の最大角)。 -
items: ドロップアイテムと重みの配列。-
id: アイテムID。 必須 -
amount: 個数 (デフォルト: 1)。 -
data: データ値(デフォルトは0) -
name: カスタム名。 -
lore: 説明文。
-
-
lockMode:コンテナスロットのロックモード。"slot"でスロット固定、"inventory"でインベントリ固定(省略可)。 *keepOnDeath:プレイヤー死亡時にアイテムを保持するかどうか(省略可)。 *enchantments: エンチャント配列。-
type:エンチャントの種類(例:sharpness)。 -
level: エンチャントレベル(例:5) *weight: 出現重み。
-
-
dropCount: ドロップ試行回数。
例: (0, 60, 0)~(20, 65, 20)にダイヤ(重み1)、鉄(重み5, 3個)、土(重み10)を5回ドロップ:
/scriptevent ws:randomDrop {"start":{"x":0,"y":60,"z":0},"end":{"x":20,"y":65,"z":20},"items":[{"id":"minecraft:diamond","weight":1,"amount":1,"name":"§bLucky Diamond","lore":["§7Found you!"]},{"id":"minecraft:iron_ingot","weight":5, "amount": 3},{"id":"minecraft:dirt","weight":10}],"dropCount": 5}