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

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

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


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

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

並び替えページで、バッジをドラッグして希望の順序に配置します。

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

バッジを付与する
ゲーム内でBadgeService:AwardBadgeAsync()メソッドを呼び出すことで、プレイヤーにバッジを付与できます。このメソッドはサーバーサイドのScript内で使用します。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
取得したバッジを確認する
以下のスクリプトは、ゲームに入ったときに任意のプレイヤーをチェックし、そのプレイヤーが変数BADGE_IDに設定された一致するIDのバッジを所有しているかどうかをBadgeService:UserHasBadgeAsync()メソッドを使用して確認します。また、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("プレイヤーがバッジを持っているか確認中にエラーが発生しました")
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 thenprint("バッジ:", result.Name)print("有効:", result.IsEnabled)print("説明:", result.Description)print("アイコン:", "rbxassetid://" .. result.IconImageId)elsewarn("バッジ情報の取得中にエラーが発生しました:", result)end