A バッジ は、プレイヤーがエクスペリエンス内で目標を達成したり、特定の期間プレイしたりするときにプレゼントできる特別な賞です。プレイヤーがバッジを受け取ると、インベントリの バッジ カテゴリ内に表示されます。

バッジを作成
所有する各エクスペリエンスの 24時間期間 (GMT) で、無料で最大 5 個のバッジを作成できます。24時間以内にさらに多くを作成したい場合は、追加のバッジごとに 100 Robux がかかります。
バッジを作成するには:
ナビゲート to the クリエイターダッシュボード.
エクスペリエンスのサムネイルにカーソルを置き、 ⋯ ボタンをクリックし、 バッジを作成する を選択します。
作成ページで 画像のアップロード ボタンをクリックし、バッジのアイコンとして使用したい画像を選択/確認します。バッジに使用する画像を作成するときは、フォロー中のことを考慮してください:
使用するテンプレートは 512×512 ピクセル 。
アップロードプロセスは、バッジ画像を円形のアイコンにトリミングしてトリミングし、円形の境界の外に重要な詳細を配置しないようにします。
>>
>>
次のフィールドを完了します:
- 名前 — バッジのタイトル。
- 説明 — プレイヤーがバッジを獲得するためにできることの説明。
- バッジが有効化済み — バッジが作成されたときに有効化されるかどうか。無効なバッジは、エクスペリエンスのメインページの バッジ セクションに表示されず、プレイヤーが獲得できません。
クリックする バッジを作成 ボタン。新しいバッジは、 エンゲージメント > バッジ セクションで、クリエイターダッシュボード に表示されます。新しいバッジが有効になっている場合、バッジセクションの バッジ ページの下にも表示されます。
エクスペリエンスのメインページにバッジ
バッジの再順序化
バッジが最初に作成されると、バッジリストの最後に配置されます。ドラッグアンドドロップインターフェイスを使用して、バッジを最大 50 個まで再順序化できます。
バッジを再順序化するには:
関連するエクスペリエンスに移動します。
エンゲージ ヘッダーの下のサイドパネルで、バッジ ページに移動します。
選択 再配置 を選択して、再配置ページに移動します。
再編成ページで、バッジを好ましい順序にドラッグアンドドロップします。
保存 を選択して、この順序を保存します。指定された順序は、エクスペリエンスの詳細ページに表示されるべきです。
スクリプトバッジ
一般的なバッジスクリプトワークフローには、バッジを授与する、プレイヤーが以前にバッジをあなたのエクスペリエンスで獲得したかどうかをチェックする、バッジ情報を取得するが含まれます。
バッジIDを見つける
バッジのIDはそのユニークな識別子です。プレイヤーにバッジを授与するなどのワークフローを実装するときには、このIDが必要になります。
クリエイターダッシュボード で、エンゲージメント の下で関連するエクスペリエンスの バッジ セクションに移動します。
バッジのサムネイルをホバーし、 ⋯ ボタンをクリックし、コンテキストメニューから アセットIDをコピー を選択します。
アワードバッジ
サーバー側の BadgeService:AwardBadge() メソッドで Script メソッドを呼び出して、エクスペリエンス全体でプレイヤーにバッジを授与できます。BadgeService:GetBadgeInfoAsync() は、バッジのプロパティを返し、プレイヤーにバッジが授与できるかどうかを確認する IsEnabled を含みます。バッジを有効化または無効化することは、 バッジの構成 フォームから クリエイターダッシュボード にアクセスして行うことができます。
次は、プレイヤーにバッジを授与する安全な機能の例です。
local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- バッジ情報を取得する
local success, badgeInfo = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, badgeId)
if success then
-- バッジが授与できることを確認する
if badgeInfo.IsEnabled then
-- アワードバッジ
local awarded, errorMessage = pcall(BadgeService.AwardBadge, BadgeService, player.UserId, badgeId)
if not awarded then
warn("Error while awarding badge:", errorMessage)
end
end
else
warn("Error while fetching badge info!")
end
end
獲得したバッジをチェック
次のスクリプトは、プレイヤーがエクスペリエンスに入ったときにチェックし、そのプレイヤーが変数 BadgeService:UserHasBadgeAsync() に設定された マッチングID でバッジを所有しているかどうかを BADGE_ID メソッドを使用して確認します。バッチで BadgeService:CheckUserBadgesAsync() メソッドを使用してバッジ所有を確認することもできます。
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 00000000 -- これをバッジ ID に変更
local function onPlayerAdded(player)
-- プレイヤーがバッジを持っているかどうかをチェック
local success, hasBadge = pcall(BadgeService.UserHasBadgeAsync, BadgeService, player.UserId, BADGE_ID)
-- エラーが発生した場合は、警告を発行して機能を終了する
if not success then
warn("Error while checking if player has badge")
return
end
if hasBadge then
-- 必要に応じてプレイヤーのバッジ所有権を処理
end
end
-- 「PlayerAdded」イベントを「onPlayerAdded()」関数に接続
Players.PlayerAdded:Connect(onPlayerAdded)
バッジ情報を取得する
バッジに関する情報を取得するには、説明やアイコンアセットIDなど、BadgeService:GetBadgeInfoAsync()を使用して badgeID メソッドを呼び出します。例:
local BadgeService = game:GetService("BadgeService")local BADGE_ID = 00000000 -- これをバッジ ID に変更-- バッジ情報を取得するlocal success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)-- 情報を出力するif success thenprint("Badge:", result.Name)print("Enabled:", result.IsEnabled)print("Description:", result.Description)print("Icon:", "rbxassetid://" .. result.IconImageId)elsewarn("Error while fetching badge info:", result)end