ロブロックススタジオでバッジを作成・付与する方法【完全ガイド】
コラムRoblox Studio(ロブロックススタジオ)で自作のアスレチック(Obby)や迷路が完成したとき、生徒たちから「先生、最後までクリアした人に記念のバッジをあげたい!」「どうやって画面に『バッジ獲得!』って出すの?」とよく相談を受けます。
バッジは、プレイヤーがゲーム内の目標を達成したときに授与される「公式の実績メダル」です。獲得したバッジはプレイヤーのRobloxプロフィール欄にずっと残り、友達に自慢できるため、プレイヤーが「最後まで諦めずにクリアしよう!」と夢中になる最高のモチベーションになります。
しかし、いざ作ろうとすると、「ブラウザのCreator Dashboardで画像を登録する作業」と「Roblox Studio内でLuaスクリプトを書く作業」の2つを行き来する必要があり、「IDはどこにあるの?」「Studioでテストしても画面にバッジが出ない!」と迷子になってしまう子が非常に多いのです。
この記事では、教室で教えている手順に沿って、バッジ画像の用意から管理画面での登録、そして「ゴールに触れたらバッジ付与」「初めて入ってきた人に歓迎バッジ付与」といったコピペで動くスクリプトまで、ゼロから分かりやすく解説します。
目次
- Roblox Studioのバッジとは?ゲームパスとの違い
- バッジ作成の前に必要なもの(画像と公開設定)
- Creator Dashboardでバッジを登録する4ステップ
- ステップ1:バッジ用の画像をアップロードする
- ステップ2:バッジ名と説明文を設定する
- 知っておきたい!無料作成枠(1日5個まで無料)のルール
- ステップ3:プログラム用の「バッジID」をコピーする
- Luaスクリプトでバッジを付与する(BadgeService)
- パターン①:ゴールブロックに触れたら付与(Obbyの定番)
- パターン②:初めてゲームに入った人に歓迎バッジを付与
- パターン③:特定の敵を倒した瞬間に付与
- ゲーム内でバッジの獲得通知を確認する方法
- 現場で頻出!バッジが付与されない時の解決法
- テストで一度もらったバッジは二度ともらえない?
- StudioのAPIアクセス許可を忘れずに
- バッジに関するよくある質問(FAQ)
- まとめ
Roblox Studioのバッジとは?ゲームパスとの違い
バッジとは、プレイヤーがゲーム内で特定の条件(「難関ステージをクリアした」「隠し部屋を見つけた」「モンスターを100体倒した」など)を達成したときに授与される「実績メダル」です。
よく似た機能に「ゲームパス(Game Pass)」がありますが、目的はまったく異なります。

- バッジ(Badge)=「無料の実績」
プレイヤーがゲーム内で行動したご褒美として無料でプレゼントするもの。プレイヤーの達成感を高め、ゲームを長く遊んでもらう(リテンション率向上)ために使います。 - ゲームパス(Game Pass)=「有料のアイテム・特権」
プレイヤーが仮想通貨Robux(ロバックス)を支払って購入する課金アイテム。「足が速くなる靴」「VIP専用エリアへの入場券」などを販売して収益化するために使います。
「プレイヤーを褒めて喜ばせるのがバッジ」「ゲームを盛り上げて販売するのがゲームパス」と覚えておきましょう。
バッジ作成の前に必要なもの(画像と公開設定)
バッジを作成する前に、次の2つの準備を済ませておきましょう。

- バッジ用のアイコン画像(512 × 512pxの正方形) PNGまたはJPG形式の画像を用意します。丸型や星型のデザインが人気です(四角い画像でも、Robloxの画面上では自動的に丸く切り抜かれて表示されます)。
- ゲームの公開設定(Publish) バッジは、Robloxのサーバー上に保存されたゲームにのみ紐づけることができます。未保存の新規ファイルの場合は、Roblox Studio左上の「ファイル」→「Robloxに公開(Publish to Roblox)」を行っておいてください。
Creator Dashboardでバッジを登録する4ステップ
バッジの登録は、Roblox Studioの中ではなく、ブラウザの管理画面(Creator Dashboard)から行います。
ステップ1:バッジ用の画像をアップロードする
- ブラウザで「クリエイターダッシュボード(create.roblox.com/dashboard/creations)」を開きます。
- バッジをつけたい自分のゲーム(エクスペリエンス)をクリックします。
- 左側メニューの「収益化」または「エンゲージメント」欄にある「バッジ(Badges)」を選びます。
- 画面右上の「バッジを作成(Create a Badge)」ボタンをクリックします。
- 「画像をアップロード」から、用意した512×512pxのアイコン画像を選択します。
ステップ2:バッジ名と説明文を設定する
- 名前(Name):「Obbyクリア記念!」「初心者脱出」など、獲得した瞬間に嬉しくなる名前をつけます。
- 説明(Description):「難関のタワーを登りきった勇敢なプレイヤーに贈られる勲章」など、獲得条件を分かりやすく書きます。
知っておきたい!無料作成枠(1日5個まで無料)のルール
以前のRobloxでは、バッジを1つ登録するたびに100 Robux(約150円)の手数料がかかっていましたが、現在は誰でも1日5個まで完全に無料で作成できます(1アカウントあたり24時間ごとに5個の無料枠がリセットされます)。
小学生のお子さまでも、お小遣いやRobuxを使わずに安心して自由なバッジを作ることができます。
ステップ3:プログラム用の「バッジID」をコピーする
登録が完了すると、バッジ一覧に作成したバッジが表示されます。
バッジの右側にある「…(メニュー)」をクリックし、「アセットIDをコピー(Copy Asset ID)」をクリックします。
この時クリップボードに保存される「長い数字の並び(例: 1234567890)」が、後でスクリプトに貼り付けるバッジIDです。
Luaスクリプトでバッジを付与する(BadgeService)
バッジIDが手に入ったら、いよいよRoblox Studioで「どんな条件でバッジをあげるか」のスクリプトを書いていきます。
Robloxには、バッジを管理するための専用システム**BadgeService(バッジサービス)**が用意されています。

パターン①:ゴールブロックに触れたら付与(Obbyの定番)
アスレチックゲームのゴール地点に置いたブロック(ゴールパーツ)に触れた瞬間、バッジをプレゼントする最も人気のある仕組みです。
ゴールブロックの中に通常の「Script」を追加し、以下のコードを記述します。
local BadgeService = game:GetService("BadgeService")
local BADGE_ID = 1234567890 -- ★ここに先ほどコピーしたバッジIDを貼り付ける
local goalPart = script.Parent
goalPart.Touched:Connect(function(hit)
local character = hit.Parent
local player = game.Players:GetPlayerFromCharacter(character)
-- 触れたのがプレイヤー本人の場合のみ処理
if player then
-- 既にバッジを持っているか確認(エラーを防ぐ安全設計)
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, BADGE_ID)
end)
-- まだバッジを持っていなければ付与する
if success and not hasBadge then
pcall(function()
BadgeService:AwardBadge(player.UserId, BADGE_ID)
end)
end
end
end)
pcall(保護された呼び出し)を使っているのは、インターネット通信が一時的に途切れてもゲーム全体がエラーで止まらないようにするためのプロの現場の必須テクニックです。
パターン②:初めてゲームに入った人に歓迎バッジを付与
「自分のゲームに来てくれてありがとう!」という気持ちを込めて、初参加のプレイヤーに自動でウェルカムバッジを配るスクリプトです。
ServerScriptServiceの中にScriptを追加し、以下のコードを入れます。
local BadgeService = game:GetService("BadgeService")
local WELCOME_BADGE_ID = 1234567890 -- ★歓迎バッジのID
game.Players.PlayerAdded:Connect(function(player)
-- 参加後、少しだけ待ってからチェック
task.wait(2)
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, WELCOME_BADGE_ID)
end)
if success and not hasBadge then
pcall(function()
BadgeService:AwardBadge(player.UserId, WELCOME_BADGE_ID)
end)
end
end)
パターン③:特定の敵を倒した瞬間に付与
ボスのHP(Humanoid.Health)が0になった瞬間に、とどめを刺したプレイヤーへ討伐バッジを付与することも可能です。humanoid.Diedイベントと組み合わせることで、RPGやバトルゲームの討伐実績が作れます。
ゲーム内でバッジの獲得通知を確認する方法
バッジのコードが正しく動くと、ゲーム画面の右下に「ピコン!」と小気味よい効果音とともに、丸いバッジのアイコンと「バッジ獲得!」という公式の通知ポップアップが自動的にスライド表示されます。

この通知UIはRobloxシステムが標準で用意してくれているため、開発者が自分でUIアニメーションを作る必要はありません。
現場で頻出!バッジが付与されない時の解決法
教室で子どもたちがバッジをテストした際、「あれ?ゴールに触ったのに右下に何も出ないよ?」と慌てることがよくあります。原因はほとんど以下の2つです。

テストで一度もらったバッジは二度ともらえない?
もっとも多い原因がこれです。
バッジは「1人につき1回しか獲得できない」仕様になっています。一度テストプレイでバッジをもらってしまうと、スクリプトのUserHasBadgeAsyncが「すでに持っている」と判定するため、2回目以降は何も起きません。
もう一度テストしたい場合は、以下の手順で自分のアカウントからバッジを削除してください。
- Roblox公式サイトで自分のプロフィールを開き、「インベントリ」→「バッジ」を開きます。
- テストしたバッジをクリックし、右上の「…」から「インベントリから削除(Delete from Inventory)」を選びます。
- これで未所持の状態に戻り、もう一度Studioで獲得テストができるようになります。
StudioのAPIアクセス許可を忘れずに
Roblox Studio内から外部のバッジデータと通信するためには、設定の許可が必要です。
- Studio上部の「ホーム」タブから「ゲーム設定(Game Settings)」を開きます。
- 左メニューの「セキュリティ(Security)」をクリックします。
- 「APIサービスへのアクセスを有効にする(Enable Studio Access to API Services)」をONにして「保存」します。
ここがオフになっていると、テストプレイ中にBadgeServiceが通信できずにエラーになります。
バッジに関するよくある質問(FAQ)
Q1. バッジの画像は後から変更できますか? はい、いつでも変更可能です。Creator Dashboardのバッジ設定画面から新しい画像をアップロードし直せば、バッジIDを変えずにアイコンや説明文を更新できます。
Q2. 1つのゲームに作れるバッジの最大数はいくつですか? 実質的な上限はありません。毎日5個ずつ作れば、何十個でも実績を用意できます(Obbyの10ステージごと、隠しコイン発見ごとなど)。
Q3. プライベートサーバー(VIPサーバー)でもバッジはもらえますか? はい、プライベートサーバーでも通常の公開サーバーと同様にバッジを獲得できます。友達だけで集まって実績解除を楽しむことも可能です。
まとめ
ロブロックススタジオでバッジを作成・付与する方法について、管理画面での登録からトリガー別の実装コード、テストの注意点まで解説しました。
今回の重要ポイント:
- バッジはプレイヤーに達成感を届ける「無料の実績メダル」
- 現在は1日5個まで誰でも完全無料で登録可能
- 管理画面でバッジ画像(512×512px)を登録し、固有の「バッジID」を取得する
- `BadgeService:AwardBadge`を使って、ゴール接触や初回入室時に付与する
- テストする際は「APIアクセスの許可」と「インベントリからの削除」を忘れずに
自分のゲームをクリアした友達の画面に「バッジ獲得!」と通知が飛び、友達が「やったー!バッジ取れた!」と喜んでくれたときの体験は、子どもにとって忘れられない最高の成功体験になります。ぜひ素敵なアイコンを描いて、オリジナルのバッジを作ってみてください。
TETRA UPでは、Roblox Studioでの作品作りを通じて、子どもたちが主体的にゲームの演出やプログラミングを学べるレッスンを提供しています。無料体験会でも実践的な制作を楽しく体験いただけますので、ぜひお気軽にご参加ください。
あわせて読みたい

吉田先生やよっしー、たまによしぞーって呼ばれたりしています。よろしくお願いします。