A バッジは、プレイヤーがゲーム内で目標を達成したときに贈ることができる特別な賞であり、例えば難しい目標を達成したり、一定の時間プレイしたりすることが含まれます。プレイヤーがバッジを受け取ると、そのバッジは彼らのインベントリのバッジカテゴリに表示されます。

バッジを作成する
あなたは、所有する各ゲームに対して、24時間(GMT)ごとに最大5つのバッジを無料で作成できます。24時間の期間内にさらに作成したい場合は、追加のバッジごとに100ロブックスが必要です。
バッジを作成するには:
クリエイターダッシュボードに移動します。
ゲームのサムネイルにカーソルを合わせ、**⋯**ボタンをクリックし、バッジを作成を選択します。

作成ページで、画像をアップロードボタンをクリックし、バッジのアイコンとして使用したい画像を選択/確認します。バッジ用の画像を作成する際は、以下の点に注意してください:
512×512ピクセルのテンプレートを使用します。
アップロードプロセスでは、バッジ画像が円形のアイコンにトリミングされるため、重要な詳細が円形の境界の外に出ないようにしてください。


次のフィールドを入力します:
- 名前 — バッジのタイトル。
- 説明 — プレイヤーがバッジを獲得するためにできることの説明。
- バッジを有効にする — バッジが作成時に有効になるかどうか。無効なバッジはゲームのメインページのバッジセクションに表示されず、プレイヤーが獲得することはできません。
バッジを作成ボタンをクリックします。新しいバッジは、クリエイターダッシュボードのエンゲージメント ⟩ バッジセクションに表示されます。新しいバッジが有効な場合、ゲームのメインページのバッジセクションにも表示されます。

ゲームのメインページにあるバッジ
バッジの順序を変更する
バッジが最初に作成されると、それはバッジリストの最後に配置されます。ドラッグアンドドロップインターフェースを使用して、一度に最大50のバッジの順序を変更できます。
バッジの順序を変更するには:
関連するゲームに移動します。
サイドパネルのエンゲージメントヘッダーの下で、バッジページに移動します。
順序を変更を選択して、順序変更ページに移動します。

順序変更ページで、バッジをドラッグアンドドロップして希望の順序に配置します。

保存を選択してこの順序を保存します。指定した順序は、ゲームの詳細ページに表示されるはずです。
スクリプトバッジ
一般的なバッジスクリプトのワークフローには、バッジを授与する、プレイヤーが以前に獲得したバッジを確認すること、バッジ情報を取得することが含まれます。
バッジIDを見つける
バッジのIDは、そのユニークな識別子です。このIDは、プレイヤーにバッジを授与するなどのワークフローを実装する際に必要です。
クリエイターダッシュボードで、関連するゲームのバッジセクションに移動します。
バッジのサムネイルにカーソルを合わせ、⋯ボタンをクリックし、コンテキストメニューからアセットIDをコピーを選択します。

バッジを授与する
あなたは、サーバーサイドのScript内でBadgeService:AwardBadgeAsync()メソッドを呼び出すことによって、ゲーム全体でプレイヤーにバッジを授与できます。BadgeService:GetBadgeInfoAsync()は、バッジのプロパティを返し、IsEnabledはそのバッジがプレイヤーに授与できるかどうかを確認します。バッジは、クリエイターダッシュボードのバッジを設定フォームから有効または無効にできます。
以下は、プレイヤーにバッジを授与するための安全な関数の例です。
local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- バッジ情報を取得
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- バッジが授与できることを確認
if badgeInfo.IsEnabled then
-- バッジを授与
local awarded, errorMessage = pcall(BadgeService.AwardBadgeAsync, BadgeService, player.UserId, badgeId)
if not awarded then
warn("バッジを授与中にエラーが発生しました:", errorMessage)
end
end
else
warn("バッジ情報を取得中にエラーが発生しました: " .. badgeInfo)
end
end獲得したバッジを確認する
以下のスクリプトは、プレイヤーがゲームに入るときに実行され、BadgeService:UserHasBadgeAsync()メソッドを使用して、そのプレイヤーが変数BADGE_IDに設定された一致するIDのバッジを所有しているかどうかを確認します。また、BadgeService:GetUserBadgesAsync()メソッドを使用して、バッジの所有権をバッチで確認することもできます。
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("プレイヤーがバッジを持っているか確認中にエラーが発生しました")
return
end
if hasBadge then
-- プレイヤーのバッジ所有権を必要に応じて処理
end
end
-- "PlayerAdded"イベントを"onPlayerAdded()"関数に接続
Players.PlayerAdded:Connect(onPlayerAdded)バッジ情報を取得する
バッジの説明やアイコンアセットIDなどの情報を取得するには、バッジIDを使用してBadgeService:GetBadgeInfoAsync()メソッドを呼び出します。例えば:
local BadgeService = game:GetService("BadgeService")
local BADGE_ID = 00000000 -- これをあなたのバッジIDに変更してください
-- バッジ情報を取得
local success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)
-- 情報を出力
if success then
print("バッジ:", result.Name)
print("有効:", result.IsEnabled)
print("説明:", result.Description)
print("アイコン:", "rbxassetid://" .. result.IconImageId)
else
warn("バッジ情報を取得中にエラーが発生しました:", result)
end